ActionScript 3
Werken met geometrie
Zoeken…
De hoek tussen twee punten krijgen
Vanille-wiskunde gebruiken:
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);
Een nieuwe vector gebruiken die het verschil tussen de eerste twee vertegenwoordigt:
var difference:Point = to.subtract(from);
var angle:Number = Math.atan2(difference.y, difference.x);
Opmerking:
atan2()
retourneert radialen, geen graden.
De afstand tussen twee punten krijgen
Vanille-wiskunde gebruiken:
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);
Ingebouwde functionaliteit van Point
:
var distance:Number = to.subtract(from).length; // or
var distance:Number = Point.distance(to, from);
Radialen omzetten in graden
var degrees:Number = radians * 180 / Math.PI;
Graden omzetten in radialen
var radians:Number = degrees / 180 * Math.PI;
De waarde van een cirkel in graden en radialen
- Een hele cirkel is
360
graden ofMath.PI * 2
radialen. - De helft van die waarden volgt
180
graden ofMath.PI
radialen. - Een kwart is dan
90
graden ofMath.PI / 2
radialen.
Een segment krijgen als een percentage van een hele cirkel in radialen:
function getSegment(percent:Number):Number {
return Math.PI * 2 * percent;
}
var tenth:Number = getSegment(0.1); // One tenth of a circle in radians.
Een punt verplaatsen onder een hoek
Ervan uitgaande dat u de hoek hebt waarin u wilt bewegen en een object met x
en y
waarden die u wilt verplaatsen:
var position:Point = new Point(10, 10);
var angle:Number = 1.25;
U kunt langs de x
as bewegen met Math.cos
:
position.x += Math.cos(angle);
En de y
as met Math.sin
:
position.y += Math.sin(angle);
U kunt natuurlijk het resultaat van Math.cos
en Math.sin
met de afstand die u wilt Math.sin
:
var distance:int = 20;
position.x += Math.cos(angle) * distance;
position.y += Math.sin(angle) * distance;
Opmerking: de invoerhoek moet in radialen zijn.
Bepaal of een punt binnen een rechthoekig gebied ligt
U kunt testen of een punt zich binnen een rechthoek bevindt met 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow