ActionScript 3
Arbetar med geometri
Sök…
Få vinkeln mellan två punkter
Använda vaniljmatematik:
var from:Point = new Point(100, 50);
var to:Point = new Point(80, 95);
var angle:Number = Math.atan2(to.y - from.y, to.x - from.x);
Med en ny vektor som representerar skillnaden mellan de två första:
var difference:Point = to.subtract(from);
var angle:Number = Math.atan2(difference.y, difference.x);
Obs:
atan2()
returnerar radianer, inte grader.
Få avståndet mellan två punkter
Använda vaniljmatematik:
var from:Point = new Point(300, 10);
var to:Point = new Point(75, 40);
var a:Number = to.x - from.x;
var b:Number = to.y - from.y;
var distance:Number = Math.sqrt(a * a + b * b);
Använda inbyggd funktionalitet i Point
:
var distance:Number = to.subtract(from).length; // or
var distance:Number = Point.distance(to, from);
Konvertera radianer till grader
var degrees:Number = radians * 180 / Math.PI;
Konvertera grader till radianer
var radians:Number = degrees / 180 * Math.PI;
Värdet på en cirkel i grader och radianer
- En hel cirkel är
360
grader ellerMath.PI * 2
radianer. - Hälften av dessa värden är
180
grader ellerMath.PI
radianer. - En fjärdedel är då
90
grader ellerMath.PI / 2
radianer.
För att få ett segment i procent av en hel cirkel i radianer:
function getSegment(percent:Number):Number {
return Math.PI * 2 * percent;
}
var tenth:Number = getSegment(0.1); // One tenth of a circle in radians.
Flytta en punkt längs en vinkel
Förutsatt att du har den vinkel du vill flytta i och ett objekt med x
och y
värden du vill flytta:
var position:Point = new Point(10, 10);
var angle:Number = 1.25;
Du kan flytta längs x
axeln med Math.cos
:
position.x += Math.cos(angle);
Och y
axeln med Math.sin
:
position.y += Math.sin(angle);
Du kan naturligtvis multiplicera resultatet av Math.cos
och Math.sin
med det avstånd du vill resa:
var distance:int = 20;
position.x += Math.cos(angle) * distance;
position.y += Math.sin(angle) * distance;
Obs: Ingångsvinkeln måste vara i radianer.
Bestäm om en punkt är i ett rektangelområde
Du kan testa om en punkt är i en rektangel med Rectangle.containsPoint()
:
var point:Point = new Point(5, 5);
var rectangle:Rectangle = new Rectangle(0, 0, 10, 10);
var contains:Boolean = rectangle.containsPoint(point); // true
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow