ActionScript 3
Praca z geometrią
Szukaj…
Uzyskiwanie kąta między dwoma punktami
Korzystanie z matematyki waniliowej:
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);
Używanie nowego wektora reprezentującego różnicę między pierwszymi dwoma:
var difference:Point = to.subtract(from);
var angle:Number = Math.atan2(difference.y, difference.x);
Uwaga:
atan2()
zwraca radiany, a nie stopnie.
Uzyskiwanie odległości między dwoma punktami
Korzystanie z matematyki waniliowej:
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);
Korzystanie z wbudowanej funkcjonalności Point
:
var distance:Number = to.subtract(from).length; // or
var distance:Number = Point.distance(to, from);
Przeliczanie radianów na stopnie
var degrees:Number = radians * 180 / Math.PI;
Przeliczanie stopni na radiany
var radians:Number = degrees / 180 * Math.PI;
Wartość koła w stopniach i radianach
- Cały okrąg ma
360
stopni lub radianówMath.PI * 2
. - Połowa z tych wartości to
180
stopni lub radianówMath.PI
- Ćwiartka to
90
stopni lub radianówMath.PI / 2
.
Aby uzyskać segment jako procent całego koła w radianach:
function getSegment(percent:Number):Number {
return Math.PI * 2 * percent;
}
var tenth:Number = getSegment(0.1); // One tenth of a circle in radians.
Przesuwanie punktu wzdłuż kąta
Zakładając, że kąt, który chcesz przenieść się i obiekt z x
i y
wartości, które chcesz przenieść:
var position:Point = new Point(10, 10);
var angle:Number = 1.25;
Możesz poruszać się wzdłuż osi x
pomocą Math.cos
:
position.x += Math.cos(angle);
A oś y
z Math.sin
:
position.y += Math.sin(angle);
Możesz oczywiście pomnożyć wynik Math.cos
i Math.sin
przez odległość, którą chcesz pokonać:
var distance:int = 20;
position.x += Math.cos(angle) * distance;
position.y += Math.sin(angle) * distance;
Uwaga: Kąt wejściowy musi być w radianach.
Określ, czy punkt znajduje się w obszarze prostokąta
Możesz sprawdzić, czy punkt znajduje się wewnątrz prostokąta za pomocą 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow