2010-07-31 14 views

Répondre

0

Utilisez l'équation d'un cercle centré sur le premier point et résolvez x et y.

premier point = x_0, y_0

équation

d'un cercle de rayon 5 autour de premier point

(x - x 0)^2 + (y - y_0)^2 = 25

utilisation l'équation de la ligne pour remplacer y, et résoudre pour x. Attention à ce que vous obteniez 2 points, choisissez le bon. L'utilisation de l'équation de la ligne à résoudre pour y.

3
public static function distanceFromPoint(a:Point, b:Point, dist:Number):Point { 
    var tmp:Point = b.subtract(a); 
    tmp.normalize(dist); 
    return a.add(tmp); 
} 

Comment cela fonctionne:
Vous soustrayez a de b pour obtenir le vecteur entre les deux points. Vous normaliser ce vecteur et le multiplier par dist pour obtenir une ligne dist unités pointant dans la direction de a à b. Ajouter ce vecteur au point a et le résultat sera un nouveau point qui est dist unités de a dans la direction de b.

+1

+1. Une note mineure. Vous devez utiliser une variable temporaire pour stocker le point normalisé, puisque 'normalize' renvoie' void'. Quelque chose comme ceci: 'fonction statique publique distanceFromPoint (un: Point, b: Point, dist: nombre): Point {var tmp: Point = b.subtract (a); tmp.normalize (dist); return a.add (tmp);} ' –

+0

Merci @Juan. J'ai modded [une de vos réponses sous-estimées] (http://stackoverflow.com/questions/3217212/key-value-pairs-in-as3/3217584#3217584) en retour. – Gunslinger47