Skip to content

Commit

Permalink
Add an option to disable the new position.
Browse files Browse the repository at this point in the history
  • Loading branch information
pchote committed Feb 27, 2019
1 parent ca498a3 commit e505e6c
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 33 deletions.
70 changes: 37 additions & 33 deletions static/findingchart.js
Original file line number Diff line number Diff line change
Expand Up @@ -143,39 +143,41 @@ function generateChart(t) {
chartContext.arc(oldX, oldY, json.indicator_size, 0, 2 * Math.PI);
chartContext.stroke();

// New source position
var newX = chartImageX + json.observing_pos[0];
var newY = chartImageY + json.observing_pos[1];
chartContext.fillStyle = 'rgba(255, 0, 0, 0.5)';
chartContext.beginPath();
chartContext.arc(newX, newY, json.indicator_size, 0, 2 * Math.PI);
chartContext.fill();

// Connecting arrow
var deltaX = newX - oldX;
var deltaY = newY - oldY;
var deltaL = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
if (deltaL > 2.5 * json.indicator_size) {
var dirX = deltaX / deltaL;
var dirY = deltaY / deltaL;

var lineStartX = oldX + json.indicator_size * dirX;
var lineStartY = oldY + json.indicator_size * dirY;
var lineEndX = newX - json.indicator_size * dirX;
var lineEndY = newY - json.indicator_size * dirY;

var arrowAX = lineEndX - json.indicator_size * (dirY + dirX)
var arrowAY = lineEndY + json.indicator_size * (-dirY + dirX)
var arrowBX = lineEndX - json.indicator_size * (-dirY + dirX)
var arrowBY = lineEndY + json.indicator_size * (-dirY - dirX)

chartContext.beginPath();
chartContext.moveTo(lineStartX, lineStartY);
chartContext.lineTo(lineEndX, lineEndY);
chartContext.moveTo(arrowAX, arrowAY);
chartContext.lineTo(lineEndX, lineEndY);
chartContext.lineTo(arrowBX, arrowBY);
chartContext.stroke();
if (t.newposition) {
// New source position
var newX = chartImageX + json.observing_pos[0];
var newY = chartImageY + json.observing_pos[1];
chartContext.fillStyle = 'rgba(255, 0, 0, 0.5)';
chartContext.beginPath();
chartContext.arc(newX, newY, json.indicator_size, 0, 2 * Math.PI);
chartContext.fill();

// Connecting arrow
var deltaX = newX - oldX;
var deltaY = newY - oldY;
var deltaL = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
if (deltaL > 2.5 * json.indicator_size) {
var dirX = deltaX / deltaL;
var dirY = deltaY / deltaL;

var lineStartX = oldX + json.indicator_size * dirX;
var lineStartY = oldY + json.indicator_size * dirY;
var lineEndX = newX - json.indicator_size * dirX;
var lineEndY = newY - json.indicator_size * dirY;

var arrowAX = lineEndX - json.indicator_size * (dirY + dirX)
var arrowAY = lineEndY + json.indicator_size * (-dirY + dirX)
var arrowBX = lineEndX - json.indicator_size * (-dirY + dirX)
var arrowBY = lineEndY + json.indicator_size * (-dirY - dirX)

chartContext.beginPath();
chartContext.moveTo(lineStartX, lineStartY);
chartContext.lineTo(lineEndX, lineEndY);
chartContext.moveTo(arrowAX, arrowAY);
chartContext.lineTo(lineEndX, lineEndY);
chartContext.lineTo(arrowBX, arrowBY);
chartContext.stroke();
}
}

if (t.annotate) {
Expand Down Expand Up @@ -222,6 +224,7 @@ function setup() {

var type = $("input[name='type']:checked").val();
var coords = $("textarea[name='coords']").val().split('\n');
var newpos = $("input[name='newpos']").prop('checked');

if (parseFloat(size) != size) {
$('#error').html('Unable to parse "' + size + '" as a number');
Expand Down Expand Up @@ -345,6 +348,7 @@ function setup() {
'size': size,
'annotate': type == 'annotated',
'outepoch': outepoch,
'newposition': newpos,
});
}

Expand Down
9 changes: 9 additions & 0 deletions templates/input.html
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,15 @@ <h1>Finding chart generator</h1>
<label><input type="radio" name="type" id="type-raw" value="raw">Raw image</label>
</div>
</div>
<div class="form-group">
<div class="col-sm-2"></div>
<div class="form-check">
<input class="form-check-input" type="checkbox" name="newpos" id="newpos" value="" checked>
<label class="form-check-label" for="newpos">
Predict current position
</label>
</div>
</div>
<button class="btn btn-primary" id="download">Download Zip</button><button class="btn btn-primary" id="generate">Generate</button>&nbsp;<span id="error" class="label-danger"></span>
</div>
</div>
Expand Down

0 comments on commit e505e6c

Please sign in to comment.