2012-06-28 17 views
5

Bir satırın sonunda iki nokta var.
Bu hattın bir çevirisinin son koordinatlarını almam gerekiyor.
Çeviri, orijinal satırdan d mesafesi olan paralel bir çizgi olacaktır.
burada neye ihtiyacım bir resimdir: Bir satırın bitiş koordinatlarını çevirme işlevi

enter image description here

Ben de bu iki nokta ve mesafeyi geçmek ve getiri iki yeni koordinatlarını alabilirsiniz bir işlev gerekir.
Bir süredir bu problem üzerinde sıkışmış durumdayım. Herhangi bir yardım takdir edilecektir!
Teşekkürler!

+0

Eğer 'distance' pozitif ise hat hangi yönde yansıtılır? negatif? – justderb

+0

Bu çeviri başka bir yön olmadan belirsizdir. Hattın uzaklığı ve çizgisine paralel uzak mesafe olan sonsuz sayıda çizgi vardır. – cheeken

+2

Aynı uzunluğa ve orijinaline paralel bir çizgi parçası olmasını istiyorum. Eski ve yeni noktalar arasında bir çizgi çizecekseniz, orijinal çizgiyle dikey bir çizgi oluşturmalıdır. Açık olup olmadığından emin değilim. Yine de görüntüde görülen çizgiyi istiyorum. –

cevap

3

yeni koordinatlar normal vektörü yönü hareket ediyor arasında ile çarpılır

mesafe d elde edilen vektör olacak orijinal vektör noktasında içine eklendi.

DÜZENLEME: hattın iki nokta göz önüne alındığında

, şu noktaları birleştiren vektör normal hesaplamak gerekir. Information on that is here..

normalized ile çarpın bu vektör, her alanına ekleyin.

+0

Biraz oynadıktan sonra anladım! Çok teşekkür ederim. –

2

Vektör hesaplayın (x2-x1, y2-y1). Bu senin çizginin yönünde bir vektör. Normal bir vektör o zaman mesafe d çevrilmiş nokta

tarafından verilecektir Şimdi verilen
A = (y1-y2,x1-x2)/|(y1-y2,x1-x2)| 

istediğiniz yöne birim vektörü elde etmek Büyüklüğüne

(-(y2-y1),-(x2-x1)) = (y1-y2,x1-x2). 

Divide bu vektör verilir

NewPoint = OldPoint + d * A 
İlgili konular