Changeset 36965 for gs3-installations


Ignore:
Timestamp:
2022-11-30T18:23:45+13:00 (17 months ago)
Author:
davidb
Message:

Rough plotting of AV val on plot

Location:
gs3-installations/mars/trunk/sites/mars/collect/amc-essentia
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • gs3-installations/mars/trunk/sites/mars/collect/amc-essentia/etc/collectionConfig.xml

    r36963 r36965  
    762762              </form>
    763763              <div>
    764                 <div id="av-chart-div" style="height: 325px; width: 300px; float: right; display: none;">
     764                <div id="av-chart-div" style="position: relative; height: 325px; width: 300px; float: right; display: none;">
     765                  <div style="position: absolute; top: 0; left: 0; width: 300px; height: 300px; pointer-events: none;">
     766                <canvas id="av-chart-canvas" style="XXwidth: 100%; height: 300px;">
     767                  Your browser does not support the canvas element
     768                </canvas>
     769                  </div>
    765770                  <img id="av-chart-img" width="300"
    766771                   style="cursor: crosshair; background-colorXX: #fefefe;"
  • gs3-installations/mars/trunk/sites/mars/collect/amc-essentia/js/av_document.js

    r36963 r36965  
    123123    console.log(`AVRecommendations Arousal limits: ${min_arousal_val} <-> ${max_arousal_val}`);
    124124    console.log(`AVRecommendations Valence limits: ${min_valence_val} <-> ${max_valence_val}`);
     125
     126    var av_cluster_x_org = (min_arousal_val + max_arousal_val)/2.0;
     127    var av_cluster_y_org = (min_valence_val + max_valence_val)/2.0;
     128
     129    var av_cluster_x_delta = Math.abs(min_arousal_val - max_arousal_val)/2.0;
     130    var av_cluster_y_delta = Math.abs(min_valence_val - max_valence_val)/2.0;
     131
     132    var av_cluster_rad = Math.max(Math.max(av_cluster_x_delta,av_cluster_y_delta),3.0);
     133   
     134    var disp_coord = av_to_display_coord(av_cluster_x_org,av_cluster_y_org);
     135    var disp_x = disp_coord.x;
     136    var disp_y = disp_coord.y;
     137
     138    var av_chart_canvas = document.getElementById('av-chart-canvas');
     139   
     140    var ctx = av_chart_canvas.getContext("2d");
     141    ctx.beginPath();
     142    ctx.arc(disp_x/2, disp_y/2, av_cluster_rad/2, 0, 2*Math.PI, false);
     143    ctx.fillStyle = 'rgba(50,50,128,0.5)';
     144    ctx.fill();
     145    ctx.lineWidth = 1;
     146    ctx.strokeStyle = 'rgba(0,0,160,0.5)';
     147    ctx.stroke();
    125148   
    126149}
     
    309332}
    310333
     334
     335function av_to_display_coord(av_x,av_y)
     336{
     337    //var capped_av_x = Math.max(Math.min(av_x,1.0),-1.0);
     338    //var capped_av_y = Math.max(Math.min(av_y,1.0),-1.0);
     339
     340    // transform the coord system from av [-1,1] to be the original SVG AV chart size
     341    var orig_av_x = av_x * av_chart_orig_r;
     342    var orig_av_y = av_y * av_chart_orig_r;
     343
     344    // tranform the coord system to be expressed from the top-left as the origin
     345    var scaled_disp_x = orig_av_x + av_chart_orig_x_org;
     346    var scaled_disp_y = (-1 * orig_av_y) + av_chart_orig_y_org;
     347   
     348    var disp_x = scaled_disp_x / av_chart_scale;
     349    var disp_y = scaled_disp_y / av_chart_scale;
     350   
     351    return { "x": disp_x, "y": disp_y };
     352}
     353
     354
    311355function av_chart_click(elem,e)
    312356{
     
    319363    var disp_y = e.pageY - elem_y_org;
    320364
    321     /*
    322     var scaled_disp_x = disp_x * av_chart_scale;
    323     var scaled_disp_y = disp_y * av_chart_scale;
    324 
    325     var orig_av_x = scaled_disp_x - av_chart_orig_x_org;
    326     var orig_av_y = -1 * (scaled_disp_y - av_chart_orig_y_org); // flip y axis
    327 
    328     var av_x = orig_av_x / av_chart_orig_r;
    329     var av_y = orig_av_y / av_chart_orig_r;
    330    
    331     var capped_av_x = Math.max(Math.min(av_x,1.0),-1.0);
    332     var capped_av_y = Math.max(Math.min(av_y,1.0),-1.0);
    333     */ 
    334 
    335     av_coord = display_to_av_coord(disp_x,disp_y);
     365    //console.log(`(disp_x,disp_y) = (${disp_x},${disp_y})`);
     366    var av_coord = display_to_av_coord(disp_x,disp_y);
    336367    var capped_av_x = av_coord.x;
    337368    var capped_av_y = av_coord.y;
     
    339370    console.log(`av x,y: (${capped_av_x},${capped_av_y})`);
    340371
     372    //var disp_coord = av_to_display_coord(capped_av_x,capped_av_y);
     373    //var reconverted_disp_x = disp_coord.x;
     374    //var reconverted_disp_y = disp_coord.y;
     375   
     376    //console.log(`reconverted (disp_x,disp_y) = (${reconverted_disp_x},${reconverted_disp_y})`);
     377   
    341378    var form = $('#av-query-form')[0];
    342379   
Note: See TracChangeset for help on using the changeset viewer.