:
90 degrees (UP from the START point) 90 degrees (UP from the END point)
| |
START- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - END
| |
90 degrees (DOWN from the START point) 90 degrees (DOWN from the END point)
6 (2 , 2 2 ), lineTo (...), :
START END
, , START END, ( ) X Y.
So X2 - X1 = DeltaX Y2 - Y1 = DeltaY.
Math.atan2(y:Number, x:Number):Number
. , , , 180/Math.PI.
, . (180/Math.PI) .
, 90 .
- 90/radians , START END .
- -90/radians , START END, .
...
, , , 100%:
var startPoint:Point = new Point(10, 0);
var endPoint:Point = new Point(20, 0);
var mouseAngle:Number = Math.atan2( endPoint.y - startPoint.y, endPoint.x - startPoint.x );
var angle:Number;
var lineHalfGap:Number = 100 * .5;
var radians:Number = 180 / Math.PI;
angle = 90 / radians + mouseAngle;
var topOffsetX:Number = Math.cos( angle ) * lineHalfGap;
var topOffsetY:Number = Math.sin( angle ) * lineHalfGap;
angle = -90 / radians + mouseAngle;
var bottomOffsetX:Number = Math.cos( angle ) * lineHalfGap;
var bottomOffsetY:Number = Math.sin( angle ) * lineHalfGap;
var topStart:Point = new Point(startPoint.x + topOffsetX, startPoint.y + topOffsetY);
var topEnd:Point = new Point(endPoint.x + topOffsetX, endPoint.y + topOffsetY);
var bottomStart:Point = new Point(startPoint.x + bottomOffsetX, startPoint.y + bottomOffsetY);
var bottomEnd:Point = new Point(endPoint.x + bottomOffsetX, endPoint.y + bottomOffsetY);
trace(topStart, topEnd, bottomStart, bottomEnd);
, , / (, ), .
:
http://pierrechamberlain.ca/blog/2012/08/math-101-parallel-lines-two-points/