Show
Ignore:
Timestamp:
01/28/2005 01:37:50 PM (7 years ago)
Author:
kstemen
Message:

Scaling, categorization, and selecting materials have been fixed since Jorge's submission. All code should use db_get_plot_single_values now, but the old function is still around.

Location:
trunk/matml/webselector/php
Files:
1 added
1 removed
8 modified

Legend:

Unmodified
Added
Removed
  • trunk/matml/webselector/php/dbquery.php.inc

    r144 r152  
    116116          } 
    117117 
    118  
    119118      } 
    120119      elseif($power < -1){       
     
    147146        $ret=new Unit( 
    148147            "$name", 
    149             $this->num_name*$other->num_name, 
    150             $this->scale*$other->scale 
     148            pow($this->num_name,$power), 
     149            pow($this->scale,$power) 
    151150        ); 
    152151        return $ret; 
     
    154153    function equals($other) 
    155154    { 
    156         return abs($this->num_name-$other)<.00000001; 
     155        if(is_object($other)) 
     156            $num_name=$other->num_name; 
     157        else 
     158            $num_name=$other; 
     159        return abs($this->num_name-$num_name)<.00000001; 
    157160    } 
    158161} 
     
    189192    //average value out of all the matches 
    190193    var $avg_value; 
    191     var $num_unit; 
     194    var $unit; 
    192195    //number of matches 
    193196    var $count; 
     
    195198    { 
    196199        $this->avg_value=0; 
    197         $this->num_unit=0; 
     200        $this->unit=0; 
    198201        $this->count=0; 
    199202    } 
     
    204207    global $unit_infos; 
    205208    global $dom; 
    206     $scale=1; 
    207209    if(get_class($units_element)=="DOMNodeList") 
    208210        $units_element=$units_element->item(0); 
    209211    if($units_element) 
    210212    { 
    211         $num_unit=1; 
     213        $return_unit=new Unit( 
     214            "", 
     215            1, 
     216            1 
     217        ); 
    212218        $factor=$units_element->getAttribute("factor"); 
    213219        if($factor) 
    214             $scale*=$factor; 
     220            $return_unit->scale*=$factor; 
    215221        //$units=$units_element->get_elements_by_tagname("Unit"); 
    216222        $units=$units_element->getElementsByTagName("Unit"); 
     
    226232            if(!$unit_info) 
    227233                echo "Error: unknown unit $name\n"; 
    228             $scale*=pow($unit_info->scale,$power); 
    229             $num_unit*=pow($unit_info->num_name,$power); 
     234            $return_unit=$return_unit->mul($unit_info->pow($power)); 
    230235        } 
    231236    } 
    232237    else 
    233         $num_unit=0; 
    234     return array($scale,$num_unit); 
     238        $return_unit=null; 
     239    return $return_unit; 
    235240} 
    236241 
     
    243248   
    244249   $equivalencies=array( 
    245        array_flip(array("Young's Modulus","Modulus of Elasticity","Tensile Modulus")), 
     250       array_flip(array("Young's Modulus","Youngs Modulus","Modulus of Elasticity","Tensile Modulus")), 
    246251       array_flip(array("Tensile Strength, Yield","Yield Strength","Tensile Strength @ Yield")), 
    247252       array_flip(array("Heat Capacity","Specific Heat")) 
     
    303308        { 
    304309            $units=$detail->getElementsByTagName("Units"); 
    305             list($scale,$num_unit)=parse_units($units); 
    306             if(!$data->num_unit) 
    307                 $data->num_unit=$num_unit; 
     310            $unit=parse_units($units); 
     311            if(!$data->unit) 
     312                $data->unit=$unit; 
    308313            else 
    309314            { 
    310                 force_unit_match($Matid,new Unit("unknown",$num_unit,$scale),$data); 
     315                force_unit_match($Matid,$unit,$data); 
    311316            } 
    312317 
     
    316321            { 
    317322                $data->count++; 
    318                 $data->avg_value+=$property_data->nodeValue*$scale; 
     323                $data->avg_value+=$property_data->nodeValue*$unit->scale; 
    319324            } 
    320325        } 
     
    369374function force_unit_match($material,$unit,&$property_data) 
    370375{ 
     376    global $unit_infos; 
    371377    //Convert BTUs per degree F to Joules per degree C 
    372     $BTUs_per_degree_F=2*3*3/(7*7)/17; 
    373     $power=get_factor_power($property_data->num_unit,$BTUs_per_degree_F); 
    374     $property_data->num_unit*=pow($BTUs_per_degree_F,-$power)*pow( 
    375         2*3*3/(7*7)/11,$power); 
     378    $BTUs_per_degree_F=$unit_infos['BTU']->div($unit_infos['°F']); 
     379    $Joules_per_degree_C=$unit_infos['J']->div($unit_infos['°C']); 
     380    $power=get_factor_power($property_data->unit->num_name,$BTUs_per_degree_F->num_name); 
     381    $BTUs_to_Joules=$Joules_per_degree_C->div($BTUs_per_degree_F); 
     382    $BTUs_to_Joules->scale=1899.1009999999999/1000; 
     383    $property_data->unit=$property_data->unit->mul($BTUs_to_Joules->pow($power)); 
    376384    $property_data->avg_value*=pow( 
    377          1899.1009999999999/1000,$power); 
    378  
    379     if(!$unit->equals($property_data->num_unit)) 
    380     { 
    381         $power=get_factor_power($property_data->num_unit,13); 
    382         if($unit->equals($property_data->num_unit*pow(13,-$power)*pow(2*3/(7*7),$power))) 
     385        $BTUs_to_Joules->scale,$power); 
     386 
     387    if(!$unit->equals($property_data->unit)) 
     388    { 
     389        $power=get_factor_power($property_data->unit->num_name,13); 
     390        if($unit->equals($property_data->unit->num_name*pow(13,-$power)*pow(2*3/(7*7),$power))) 
    383391        { 
    384392            //it uses pound as a force 
    385             $property_data->num_unit*=pow(13,-$power)*pow(2*3/(7*7),$power); 
    386             $property_data->avg_value*=pow(4.44822162*1000,$power); 
     393            $newtons_per_pound=$unit_infos['N']->div($unit_infos['lb']); 
     394            $newtons_per_pound->scale=4.44822162*1000; 
     395            $newtons_per_pound=$newtons_per_pound->pow($power); 
     396 
     397            $property_data->unit=$property_data->unit->mul($newtons_per_pound); 
     398            $property_data->avg_value*=$newtons_per_pound->scale; 
    387399            return true; 
    388400        } 
    389         if($unit->equals($property_data->num_unit*pow(13,-$power)*pow(2,$power))) 
     401        if($unit->equals($property_data->unit->num_name*pow(13,-$power)*pow(2,$power))) 
    390402        { 
    391403            //it uses pound as a mass 
    392             $property_data->num_unit*=pow(13,-$power)*pow(2,$power); 
    393             $property_data->avg_value*=pow(453.59237,$power); 
     404            $grams_per_pound=$unit_infos['g']->div($unit_infos['lb']); 
     405            $grams_per_pound->scale=453.59237; 
     406            $grams_per_pound=$grams_per_pound->pow($power); 
     407            $property_data->unit=$property_data->unit->mul($grams_per_pound); 
     408            $property_data->avg_value*=$grams_per_pound->scale; 
    394409            return true; 
    395410        } 
    396         echo "Error: unit mismatch ($unit->name $unit->num_name vs $property_data->num_unit) in $material\n"; 
     411        echo "Error: unit mismatch ($unit->name vs ".$property_data->unit->name.") and ($unit->num_name vs ".$property_data->unit->num_name.") in $material\n"; 
    397412        return false; 
    398413    } 
     
    474489    $valuese = array(); 
    475490    $categories = array(); 
     491    $filenames = array(); 
    476492   
    477493    $handle = opendir('materials'); 
     
    530546                         
    531547                } 
     548                $filenames[]="materials/$file"; 
    532549            } 
    533550        } 
     
    568585  } 
    569586 
    570   return array(&$valuesX, &$valuesY, &$names, $xlabel, $ylabel, $categories); 
    571  
     587  $ret=array(&$valuesX, &$valuesY, &$names, $xlabel, $ylabel, $categories); 
     588  $ret["filenames"]=$filenames; 
     589  return $ret; 
    572590} 
    573591 
     
    580598 
    581599 
    582      $query = array(); 
     600     $query = array("Matid"=>"Material Name"); 
    583601     $power = array(); 
    584602     $NXqueries = array(); 
    585603     $NYqueries = array(); 
    586604 
    587      $xml_name = array( 
    588                         "Density" => "Density", 
    589                         "E"       => "Young's Modulus", 
    590                         "Cp"      => "Heat Capacity", 
    591                         "K"       => "Thermal Conductivity", 
    592                         "YS"      => "Yield Strength" 
    593                         ); 
    594  
    595  
    596605     $prop_units = array( 
    597606                         "Density" => $unit_infos["g"]->div($unit_infos["cc"]), 
    598                          "E"       => $unit_infos["MPa"], 
    599                          "YS"      => $unit_infos["MPa"], 
    600                          "Cp"      => $unit_infos["J"]->div($unit_infos["g"]->mul($unit_infos["°C"])), 
    601                          "K"      => $unit_infos["W"]->div($unit_infos["m"]->mul($unit_infos["K"])), 
     607                         "Young's Modulus"       => $unit_infos["MPa"], 
     608                         "Youngs Modulus"       => $unit_infos["MPa"], 
     609                         "Yield Strength"      => $unit_infos["MPa"], 
     610                         "Heat Capacity"      => $unit_infos["J"]->div($unit_infos["g"]->mul($unit_infos["°C"])), 
     611                         "Thermal Conductivity"      => $unit_infos["W"]->div($unit_infos["m"]->mul($unit_infos["K"])), 
    602612                         ); 
    603613 
     
    610620    foreach( $property_listx as $property=>$pow){ 
    611621      $index++; 
    612       $query["Xquery$index"]="$xml_name[$property]"; 
     622      $query["Xquery$index"]=$property; 
    613623      $power["Xquery$index"]= $pow; 
    614624      $final_units["Xquery$index"] = $prop_units["$property"]; 
    615625 
    616626      if( $pow > 1){ 
    617         $xlabel_num = "$xml_name[$property]^$pow *"; 
     627        $xlabel_num = "$property^$pow *"; 
    618628      } 
    619629      elseif($pow == 1){ 
    620         $xlabel_num = "$xml_name[$property]*"; 
     630        $xlabel_num = "$property*"; 
    621631      } 
    622632      elseif($pow == -1){ 
    623         $xlabel_den = "$xml_name[$property]*"; 
     633        $xlabel_den = "$property*"; 
    624634      } 
    625635      elseif($pow < -1){       
    626         $xlabel_den = "$xml_name[$property]^".abs($pow)."*"; 
     636        $xlabel_den = "$property^".abs($pow)."*"; 
    627637      } 
    628638 
     
    635645    foreach( $property_listy as $property=>$pow){ 
    636646      $index++; 
    637       $query["Yquery$index"]="$xml_name[$property]"; 
     647      $query["Yquery$index"]=$property; 
    638648      $power["Yquery$index"]= $pow; 
    639649      $final_units["Yquery$index"] = $prop_units["$property"]; 
    640650 
    641651      if( $pow > 1){ 
    642         $ylabel_num = "$xml_name[$property]^$pow *"; 
     652        $ylabel_num = "$property^$pow *"; 
    643653      } 
    644654      elseif($pow == 1){ 
    645         $ylabel_num = "$xml_name[$property]*"; 
     655        $ylabel_num = "$property*"; 
    646656      } 
    647657      elseif($pow == -1){ 
    648         $ylabel_den = "$xml_name[$property]*"; 
     658        $ylabel_den = "$property*"; 
    649659      } 
    650660      elseif($pow < -1){       
    651         $ylabel_den = "$xml_name[$property]^".abs($pow)."*"; 
     661        $ylabel_den = "$property^".abs($pow)."*"; 
    652662      } 
    653663       
     
    659669    // Prepare final units 
    660670  
    661  
    662671    $first = 0; 
    663672    foreach($NXqueries as $Nquery){ 
     
    711720    $valuese = array(); 
    712721    $categories = array(); 
     722    $filenames = array(); 
    713723   
    714724    $handle = opendir('materials'); 
     
    782792 
    783793                foreach( $NXqueries as $Nquery){ 
    784                   $cont *= ( pow($values["$Nquery"]->avg_value,$power["$Nquery"]) /$final_units["$Nquery"]->scale); 
     794                  $final_unit=$final_units["$Nquery"]->pow($power["$Nquery"]); 
     795                  $cont *= ( pow($values["$Nquery"]->avg_value,$power["$Nquery"]) /$final_unit->scale); 
    785796                } 
    786797                $valuesX[]=$cont; 
     
    789800 
    790801                foreach( $NYqueries as $Nquery){ 
    791                   $cont *= ( pow($values["$Nquery"]->avg_value,$power["$Nquery"]) /$final_units["$Nquery"]->scale); 
     802                  $final_unit=$final_units["$Nquery"]->pow($power["$Nquery"]); 
     803                  $cont *= ( pow($values["$Nquery"]->avg_value,$power["$Nquery"]) /$final_unit->scale); 
    792804                } 
    793805                $valuesY[]=$cont; 
     
    805817                // Something else for category 
    806818                $categories[]=$category; 
     819                $filenames[]="materials/$file"; 
    807820 
    808821            } 
     
    819832  
    820833 
    821     return array(&$valuesX, &$valuesY, &$names, $xlabel, $ylabel, $categories); 
    822  
     834  $ret=array(&$valuesX, &$valuesY, &$names, $xlabel, $ylabel, $categories); 
     835  $ret["filenames"]=$filenames; 
     836  return $ret; 
    823837} 
    824838 
  • trunk/matml/webselector/php/plot.php

    r144 r152  
    22include("functions.php.inc"); 
    33include("dbquery.php.inc"); 
     4include("setvars.inc.php"); 
    45 
    56//by "likavcan at NOSPAN sturak nospan dot sk" at from php.net  
     
    2829} 
    2930 
    30 function calc_tickscale($max_value,$min_ticks,$max_labels) 
    31 { 
    32     //First see how many labels we can get in 
    33     $tickscale=pow(10,floor(log($max_value,10))); 
    34     while($max_value/$tickscale*10<=$max_labels) 
    35         $tickscale/=10; 
    36     //That's as far as we can break up the labels for powers of 10. 
    37     //Maybe we can break it up by 5 or 2 
    38     $ticks=$max_value/$tickscale; 
    39     $divisions=1; 
    40     if($ticks*5<=$max_labels) 
    41         $divisions=5; 
    42     else if($ticks*2<=$max_labels) 
    43         $divisions=2; 
    44     $tickscale/=$divisions; 
    45     $ticks*=$divisions; 
    46  
    47     //Label interval is how many ticks to have before a label 
    48     $label_interval=1; 
    49     if($ticks*$divisions<$min_ticks&&$divisions!=1) 
    50     { 
    51         //the tickscale needs to be broken up more for the ticks 
    52         //(but not labels). Gotta undo the last factor then for the ticks. 
    53         $label_interval=10/$divisions; 
    54         $tickscale/=10/$divisions; 
    55     } 
    56  
    57     //Do we still need to break the ticks up more? 
    58     while($max_value/$tickscale<$min_ticks) 
    59     { 
    60         if($max_value/$tickscale*2>=$min_ticks) 
    61         { 
    62             $label_interval*=2; 
    63             $tickscale/=2; 
    64             break; 
    65         } 
    66         if($max_value/$tickscale*5>=$min_ticks) 
    67         { 
    68             $label_interval*=5; 
    69             $tickscale/=5; 
    70             break; 
    71         } 
    72         $label_interval*=10; 
    73         $tickscale/=10; 
    74     } 
    75     return array($tickscale,$label_interval); 
    76 } 
    77  
    78 //Request arguments 
    79  
    80 if(isset($_REQUEST['plot'])) 
    81     $plottype = $_REQUEST['plot']; 
    82 else 
    83     $plottype = 'EvsYield'; 
    84 if(isset($_REQUEST['log'])) 
    85     $log = $_REQUEST['log']; 
    86 else 
    87     $log = 0; 
    88 if(isset($_REQUEST['selected'])) 
    89     $selected = $_REQUEST['selected']; 
    90 else 
    91     $selected = ''; 
    92 $categorizations=array(array(""=>0),array("Metals"=>0,"Polymers"=>1,"Ceramics"=>2,"Fibers"=>1)); 
    93 if(isset($_REQUEST['categorization'])) 
    94     $categorization=$categorizations[$_REQUEST['categorization']]; 
    95 else 
    96     $categorization=$categorizations[0]; 
    97  
    98  
    99  
    100 if(isset($_REQUEST["numvars"])){ 
    101   $numvars=$_REQUEST['numvars']; 
    102 } 
    103  
    104 $matstring = ""; 
    105 $property_listx = array(); 
    106 $property_listy = array(); 
    107 for($i=1;$i<=4;$i++){ 
    108   if(isset($_REQUEST["propname".$i])){ 
    109     $propname[$i]=$_REQUEST['propname'.$i]; 
    110   } 
    111   if(isset($_REQUEST["xpow".$i])){ 
    112     $xpow[$i]=$_REQUEST['xpow'.$i]; 
    113   } 
    114   if(isset($_REQUEST["ypow".$i])){ 
    115     $ypow[$i]=$_REQUEST['ypow'.$i]; 
    116   } 
    117  
    118   if($xpow[$i] != 0){ 
    119     $property_listx["$propname[$i]"] = "$xpow[$i]"; 
    120   } 
    121   if($ypow[$i] != 0){ 
    122     $property_listy["$propname[$i]"] = "$ypow[$i]"; 
    123   } 
    124  
    125 } 
    126 // print_r($ypow); 
    127 // echo "<br><br>"; 
    128 // print_r($property_listx); 
    129 // echo "<br><br>"; 
    130 // print_r($property_listy); 
    131  
    132  
    133  
    134  
    135 //get the values from the database with these function 
    136 if($plottype == "free") 
    137      list($valuesX, $valuesY, $names, $xlabel, $ylabel, $categories) = db_get_plot_single_values($property_listx, $property_listy, $log, $categorization); 
    138      else 
    139      list($valuesX, $valuesY, $names, $xlabel, $ylabel, $categories) = db_get_plot_values($plottype, $log, $categorization); 
    140  
    141  
    142  
    143 // print_r($valuesX); 
    144 // echo "<br>"; 
    145 // print_r($valuesY); 
    146  
    147 // return; 
    148  
    14931$number_mat = count($names); 
    150  
    15132 
    15233$Iwidth=600; 
     
    16748$grey   = ImageColorAllocate($image, 220, 220, 220); 
    16849$black  = ImageColorAllocate($image, 0, 0, 0); 
    169 $category_colors=array(ImageColorAllocate($image, 0, 0, 255),ImageColorAllocate($image, 255, 0, 0),ImageColorAllocate($image, 0, 255, 0)); 
    170 $selected_color   = ImageColorAllocate($image, 255, 255, 255); 
     50$category_raw_colors=array(array(0, 0, 255),array(255, 0, 0),array(0, 255, 0),array(255,255,255)); 
     51$category_colors=array(); 
     52for($index=0; $index<count($category_raw_colors)-1; $index++) 
     53{ 
     54    $raw_color=$category_raw_colors[$index]; 
     55    $category_colors[$index]=ImageColorAllocate($image,$raw_color[0],$raw_color[1],$raw_color[2]); 
     56} 
     57$raw_color=$category_raw_colors[$index]; 
     58$selected_color=ImageColorAllocate($image,$raw_color[0],$raw_color[1],$raw_color[2]); 
    17159 
    17260$bgcolor   = ImageColorAllocate($image, 0xe5, 0xe8, 0xb2); 
     
    17765 
    17866//Figure out extra left border for y axis values 
    179 if($log == 1){ 
     67if($_SESSION['log'] == 1){ 
    18068} 
    18169else{ 
     
    20492 
    20593// Broken Log scale Attempt 
    206 if($log == 1){ 
     94if($_SESSION['log'] == 1){ 
    20795 
    20896  $maxx = log(max($valuesX)); 
     
    270158 
    271159 
    272   if($log == 1){ 
     160  if($_SESSION['log'] == 1){ 
    273161    $x = $x_initial + $width_bar * (log($valuesX[$i])  + abs($minx) ); 
    274162    $y = $y_initial - $height_bar * (log($valuesY[$i]) + abs($miny) ); 
     
    283171  // echo "X: $valuesX[$i] Y: $valuesY[$i]<br>"; 
    284172 
    285     if($selected==$names[$i]) 
     173    if(isset($_SESSION['selected_info'])&&$_SESSION['selected_info']['Material Name']==$names[$i]) 
    286174        $color=$selected_color; 
    287175    else 
  • trunk/matml/webselector/php/select_other.php

    r145 r152  
     1<?php 
     2include("dbquery.php.inc"); 
     3include "setvars.inc.php"; 
     4?> 
    15<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    26<!--  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> --> 
     
    2933<br> 
    3034<? 
    31 if(isset($_REQUEST["plot"])) 
     35 
     36echo "<a href=\"select_other.php?clicked=\"><img width=600 height=450 src=\"plot.php\" ismap style=\"border-style: none\"></a>" 
     37?> 
     38<div class="content"> 
     39<br> 
     40<br> 
     41<? 
     42echo"<table>\n"; 
     43echo"<tr>\n"; 
     44 
     45$category="Selected"; 
     46$number=count($category_raw_colors)-1; 
     47echo "<td>\n"; 
     48echo "<table>\n"; 
     49echo "<tr>\n"; 
     50echo "<td>\n"; 
     51$color=$category_raw_colors[$number]; 
     52echo sprintf("<table border=1 width=8 height=8 bgcolor=#%02X%02X%02X></table>\n",$color[0],$color[1],$color[2]); 
     53echo "</td>\n"; 
     54echo "<td>\n"; 
     55echo "&nbsp;&nbsp;$category\n"; 
     56echo "</td>\n"; 
     57echo "</tr>\n"; 
     58echo "</table>\n"; 
     59echo "</td>\n"; 
     60 
     61foreach($category_raw_colors as $number=>$color) 
    3262{ 
    33     $plot = $_REQUEST["plot"]; 
     63    $matching_category_names=array_keys($categorizations[$_SESSION['categorization']],$number); 
     64    if(!count($matching_category_names)) 
     65        continue; 
     66    echo "<td>\n"; 
     67    echo "<table>\n"; 
     68    echo "<tr>\n"; 
     69    echo "<td>\n"; 
     70    echo sprintf("<table border=1 width=8 height=8 bgcolor=#%02X%02X%02X></table>\n",$color[0],$color[1],$color[2]); 
     71    echo "</td>\n"; 
     72    echo "<td>\n&nbsp;&nbsp;"; 
     73    for($i=0; $i<count($matching_category_names); $i++) 
     74    { 
     75        $category=$matching_category_names[$i]; 
     76        if($category=="") 
     77            $category="All Others"; 
     78        if($i>0) 
     79            echo ", "; 
     80        echo "$category"; 
     81    } 
     82    echo "</td>\n"; 
     83    echo "</tr>\n"; 
     84    echo "</table>\n"; 
     85    echo "</td>\n"; 
    3486} 
    35 else 
     87echo "</tr>"; 
     88echo "</table>"; 
     89 
     90if(isset($_SESSION['selected_info'])) 
    3691{ 
    37     $plot = "free"; 
    38 } 
    39 if(isset($_REQUEST["selected"])) 
    40 { 
    41     $selected = $_REQUEST["selected"]; 
    42 } 
    43 else 
    44     $selected = ""; 
    45 if(isset($_REQUEST["categorization"])) 
    46     $categorization=$_REQUEST['categorization']; 
    47 else 
    48     $categorization=0; 
    49 include("clicked.inc"); 
    50 if(isset($_REQUEST["clicked"])) 
    51 { 
    52     list($clickX,$clickY)=explode(",",substr($_REQUEST["clicked"],1)); 
    53     clicked(); 
    54 } 
    55  
    56 if(isset($_REQUEST["numvars"])){ 
    57   $numvars=$_REQUEST['numvars']; 
    58 } 
    59  
    60 $matstring = ""; 
    61 for($i=1;$i<=4;$i++){ 
    62   if(isset($_REQUEST["propname".$i])){ 
    63     $propname[$i]=$_REQUEST['propname'.$i]; 
    64   } 
    65   if(isset($_REQUEST["xpow".$i])){ 
    66     $xpow[$i]=$_REQUEST['xpow'.$i]; 
    67   } 
    68   if(isset($_REQUEST["ypow".$i])){ 
    69     $ypow[$i]=$_REQUEST['ypow'.$i]; 
    70   } 
    71   $matstring .= "&propname$i=$propname[$i]"; 
    72   $matstring .= "&xpow$i=$xpow[$i]"; 
    73   $matstring .= "&ypow$i=$ypow[$i]"; 
    74 } 
    75  
    76 $matstring .= "&numvars=$numvars"; 
    77  
    78  
    79 if($selected) 
    80     get_selected_data(); 
    81  
    82 echo "<a href=\"select.php?plot=$plot&selected=".urlencode($selected)."&categorization=$categorization&clicked=\"><img width=600 height=450 src=\"plot.php?plot=$plot&selected=".urlencode($selected)."$matstring"."&categorization=$categorization\" ismap style=\"border-style: none\"></a>" 
    83 ?> 
    84 <div class="content"> 
    85 <br> 
    86 <br> 
    87 <? 
    88 if($selected) 
    89 { 
     92echo "<br>"; 
    9093echo "<table>\n"; 
    9194echo "<tr>\n<td colspan=3 align=center><h3>Selected Material Information</h3></td>\n</tr>\n"; 
    92 echo "<tr><td>Name</td><td width=20></td><td>$selected</td></tr>\n"; 
    93 echo "<tr><td>$xlabel</td><td></td><td>$selected_xval</td></tr>\n"; 
    94 echo "<tr><td>$ylabel</td><td></td><td>$selected_yval</td></tr>\n"; 
     95echo "<tr><td>Name</td><td width=20></td><td>".$_SESSION['selected_info']['Material Name']."</td></tr>\n"; 
     96echo "<tr><td>$xlabel</td><td></td><td>".$_SESSION['selected_info'][$xlabel]."</td></tr>\n"; 
     97echo "<tr><td>$ylabel</td><td></td><td>".$_SESSION['selected_info'][$ylabel]."</td></tr>\n"; 
     98echo "<tr><td>MatML file</td><td></td><td><A TARGET=_blank HREF=\"".$_SESSION['selected_info']['MatML Filename']."\">".$_SESSION['selected_info']['MatML Filename']."</A></td></tr>\n"; 
     99$selected_source=$_SESSION['selected_info']['Material Data Source']; 
     100if($selected_source!="") 
     101    echo "<tr><td>Data Source</td><td></td><td><A TARGET=_blank HREF=\"$selected_source\">$selected_source</A></td></tr>\n"; 
    95102echo "</table>\n"; 
    96103} 
     
    113120<select name="propname1"> 
    114121<option value="Density" selected>Density</option> 
    115 <option value="Cp">Heat Capacity</option>  
    116 <option value="K">Thermal Conductivity</option> 
    117 <option value="YS">Yield Strength</option>  
    118 <option value="E">Young's Modulus</option> <!--'--> 
     122<option value="Heat Capacity">Heat Capacity</option>  
     123<option value="Thermal Conductivity">Thermal Conductivity</option> 
     124<option value="Yield Strength">Yield Strength</option>  
     125<option value="Youngs Modulus">Young's Modulus</option> <!--'--> 
    119126</select> 
    120127</td><td align="center"><input type="text" size="3" value="1" name="xpow1"></input></td><td align="center"><input type="text" size="3" value="0" name="ypow1"></td></tr> 
     
    122129<select name="propname2"> 
    123130<option value="Density">Density</option> 
    124 <option value="Cp">Heat Capacity</option>  
    125 <option value="K">Thermal Conductivity</option> 
    126 <option value="YS">Yield Strength</option>  
    127 <option value="E" selected>Young's Modulus</option> <!--'--> 
     131<option value="Heat Capacity">Heat Capacity</option>  
     132<option value="Thermal Conductivity">Thermal Conductivity</option> 
     133<option value="Yield Strength">Yield Strength</option>  
     134<option value="Youngs Modulus" selected>Young's Modulus</option> <!--'--> 
    128135</select> 
    129136</td><td align="center"><input type="text" size="3" value="0" name="xpow2"></input></td><td align="center"><input type="text" size="3" value="1" name="ypow2"></td></tr> 
     
    131138<select name="propname3"> 
    132139<option value="Density">Density</option> 
    133 <option value="Cp">Heat Capacity</option>  
    134 <option value="K">Thermal Conductivity</option> 
    135 <option value="YS">Yield Strength</option>  
    136 <option value="E">Young's Modulus</option> <!--'--> 
     140<option value="Heat Capacity">Heat Capacity</option>  
     141<option value="Thermal Conductivity">Thermal Conductivity</option> 
     142<option value="Yield Strength">Yield Strength</option>  
     143<option value="Youngs Modulus" selected>Young's Modulus</option> <!--'--> 
    137144</select> 
    138145</td><td align="center"><input type="text" size="3" value="0" name="xpow3"></input></td><td align="center"><input type="text" size="3" value="0" name="ypow3"></td></tr> 
     
    140147<select name="propname4"> 
    141148<option value="Density">Density</option> 
    142 <option value="Cp">Heat Capacity</option>  
    143 <option value="K">Thermal Conductivity</option> 
    144 <option value="YS">Yield Strength</option>  
    145 <option value="E">Young's Modulus</option> <!--'--> 
     149<option value="Heat Capacity">Heat Capacity</option>  
     150<option value="Thermal Conductivity">Thermal Conductivity</option> 
     151<option value="Yield Strength">Yield Strength</option>  
     152<option value="Youngs Modulus" selected>Young's Modulus</option> <!--'--> 
    146153</select> 
    147154</td><td align="center"><input type="text" size="3" value="0" name="xpow4"></input></td><td align="center"><input type="text" size="3" value="0" name="ypow4"></td></tr> 
     
    156163<td align="left"> 
    157164<? 
    158 $categorizations=array("None","Metals, Polymers, and Ceramics"); 
     165$categorization_names=array("None","Metals, Polymers, and Ceramics"); 
    159166$left="<input type=\"radio\" name=\"categorization\" value=\""; 
    160167$right = "\">"; 
     
    162169 
    163170 
    164 foreach($categorizations as $index=>$name){ 
     171foreach($categorization_names as $index=>$name){ 
    165172 
    166173  echo $left; 
     
    169176 
    170177   
    171   if($index == $categorization){ 
     178  if($index == $_SESSION['categorization']){ 
    172179    echo "\" checked>"; 
    173180  } 
  • trunk/matml/webselector/php/select.php

    r121 r152  
     1<?php 
     2include("dbquery.php.inc"); 
     3include "setvars.inc.php"; 
     4?> 
    15<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
    26<!--  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd"> --> 
     
    2933<br> 
    3034<? 
    31 if(isset($_REQUEST["plot"])) 
     35//include("clicked.inc"); 
     36 
     37echo "<a href=\"select.php?clicked=\"><img width=600 height=450 src=\"plot.php\" ismap style=\"border-style: none\"></a>" 
     38?> 
     39<div class="content"> 
     40<br> 
     41<br> 
     42<? 
     43echo"<table>\n"; 
     44echo"<tr>\n"; 
     45 
     46$category="Selected"; 
     47$number=count($category_raw_colors)-1; 
     48echo "<td>\n"; 
     49echo "<table>\n"; 
     50echo "<tr>\n"; 
     51echo "<td>\n"; 
     52$color=$category_raw_colors[$number]; 
     53echo sprintf("<table border=1 width=8 height=8 bgcolor=#%02X%02X%02X></table>\n",$color[0],$color[1],$color[2]); 
     54echo "</td>\n"; 
     55echo "<td>\n"; 
     56echo "&nbsp;&nbsp;$category\n"; 
     57echo "</td>\n"; 
     58echo "</tr>\n"; 
     59echo "</table>\n"; 
     60echo "</td>\n"; 
     61 
     62foreach($category_raw_colors as $number=>$color) 
    3263{ 
    33     $plot = $_REQUEST["plot"]; 
    34 } 
    35 else 
     64    $matching_category_names=array_keys($categorizations[$_SESSION['categorization']],$number); 
     65    if(!count($matching_category_names)) 
     66        continue; 
     67    echo "<td>\n"; 
     68    echo "<table>\n"; 
     69    echo "<tr>\n"; 
     70    echo "<td>\n"; 
     71    echo sprintf("<table border=1 width=8 height=8 bgcolor=#%02X%02X%02X></table>\n",$color[0],$color[1],$color[2]); 
     72    echo "</td>\n"; 
     73    echo "<td>\n&nbsp;&nbsp;"; 
     74    for($i=0; $i<count($matching_category_names); $i++) 
     75    { 
     76        $category=$matching_category_names[$i]; 
     77        if($category=="") 
     78            $category="All Others"; 
     79        if($i>0) 
     80            echo ", "; 
     81        echo "$category"; 
     82    } 
     83    echo "</td>\n"; 
     84    echo "</tr>\n"; 
     85    echo "</table>\n"; 
     86    echo "</td>\n"; 
     87} 
     88echo "</tr>"; 
     89echo "</table>"; 
     90 
     91if(isset($_SESSION['selected_info'])) 
    3692{ 
    37     $plot = "EvsD"; 
    38 } 
    39 if(isset($_REQUEST["selected"])) 
    40 { 
    41     $selected = $_REQUEST["selected"]; 
    42 } 
    43 else 
    44     $selected = ""; 
    45 if(isset($_REQUEST["categorization"])) 
    46     $categorization=$_REQUEST['categorization']; 
    47 else 
    48     $categorization=0; 
    49 include("clicked.inc"); 
    50 if(isset($_REQUEST["clicked"])) 
    51 { 
    52     list($clickX,$clickY)=explode(",",substr($_REQUEST["clicked"],1)); 
    53     clicked(); 
    54 } 
    55 if($selected) 
    56     get_selected_data(); 
    57  
    58 echo "<a href=\"select.php?plot=$plot&selected=".urlencode($selected)."&categorization=$categorization&clicked=\"><img width=600 height=450 src=\"plot.php?plot=$plot&selected=".urlencode($selected)."&categorization=$categorization\" ismap style=\"border-style: none\"></a>" 
    59 ?> 
    60 <div class="content"> 
    61 <br> 
    62 <br> 
    63 <? 
    64 if($selected) 
    65 { 
     93echo "<br>"; 
    6694echo "<table>\n"; 
    6795echo "<tr>\n<td colspan=3 align=center><h3>Selected Material Information</h3></td>\n</tr>\n"; 
    68 echo "<tr><td>Name</td><td width=20></td><td>$selected</td></tr>\n"; 
    69 echo "<tr><td>$xlabel</td><td></td><td>$selected_xval</td></tr>\n"; 
    70 echo "<tr><td>$ylabel</td><td></td><td>$selected_yval</td></tr>\n"; 
     96echo "<tr><td>Name</td><td width=20></td><td>".$_SESSION['selected_info']['Material Name']."</td></tr>\n"; 
     97echo "<tr><td>$xlabel</td><td></td><td>".$_SESSION['selected_info'][$xlabel]."</td></tr>\n"; 
     98echo "<tr><td>$ylabel</td><td></td><td>".$_SESSION['selected_info'][$ylabel]."</td></tr>\n"; 
     99echo "<tr><td>MatML file</td><td></td><td><A TARGET=_blank HREF=\"".$_SESSION['selected_info']['MatML Filename']."\">".$_SESSION['selected_info']['MatML Filename']."</A></td></tr>\n"; 
     100$selected_source=$_SESSION['selected_info']['Material Data Source']; 
     101if($selected_source!="") 
     102    echo "<tr><td>Data Source</td><td></td><td><A TARGET=_blank HREF=\"$selected_source\">$selected_source</A></td></tr>\n"; 
    71103echo "</table>\n"; 
    72104} 
     
    85117<td align="left"> 
    86118<? 
    87 echo "<input type=\"hidden\" name=\"selected\" value=\"$selected\">\n"; 
    88  
    89119$plotypes = array("EvsD","EvsYield","EovDvsYieldovD","KvsDCp"); 
    90120$plotnames = array( 
     
    106136 
    107137   
    108   if($type == $plot){ 
     138  if($type == $_SESSION['plottype']){ 
    109139    echo "\" checked>"; 
    110140  } 
     
    125155<td align="left"> 
    126156<? 
    127 $categorizations=array("None","Metals, Polymers, and Ceramics"); 
     157$categorization_names=array("None","Metals, Polymers, and Ceramics"); 
    128158$left="<input type=\"radio\" name=\"categorization\" value=\""; 
    129159$right = "\">"; 
     
    131161 
    132162 
    133 foreach($categorizations as $index=>$name){ 
     163foreach($categorization_names as $index=>$name){ 
    134164 
    135165  echo $left; 
     
    138168 
    139169   
    140   if($index == $categorization){ 
     170  if($index == $_SESSION['categorization']){ 
    141171    echo "\" checked>"; 
    142172  }