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 eller Math.PI * 2 radianer.
  • Hälften av dessa värden är 180 grader eller Math.PI radianer.
  • En fjärdedel är då 90 grader eller Math.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