2012-06-28 47 views
5

Tôi có hai điểm ở cuối dòng.
Tôi cần lấy tọa độ cuối của bản dịch của dòng này.
Bản dịch sẽ là một đường song song là khoảng cách d từ dòng ban đầu.
đây là hình ảnh của những gì tôi cần:Chức năng dịch tọa độ cuối của một dòng

enter image description here

Vì vậy, tôi cần một chức năng mà tôi có thể vượt qua hai điểm này và khoảng cách và nhận được hai tọa độ mới trong lợi nhuận.
Tôi đã gặp vấn đề này trong một thời gian. Bất kỳ trợ giúp sẽ được đánh giá cao!
Cảm ơn bạn!

+0

Đường nào sẽ được chiếu nếu 'khoảng cách' là dương? tiêu cực? – justderb

+0

Bản dịch này không rõ ràng nếu không có một hướng khác. Có một số lượng vô hạn các dòng là khoảng cách 'd' từ và song song với dòng. – cheeken

+2

Tôi muốn nó là một đoạn thẳng có cùng chiều dài và song song với bản gốc. và Nếu bạn vẽ một đường thẳng giữa điểm cũ và điểm mới, nó sẽ tạo thành một đường vuông góc với đường thẳng ban đầu. Im không chắc chắn nếu điều đó là rõ ràng. Tuy nhiên, tôi muốn dòng được nhìn thấy trong hình ảnh. –

Trả lời

3

Các tọa độ mới sẽ là vector kết quả của

khoảng cách d nhân vector bình thường trong đó hướng nó di chuyển, thêm vào vector gốc điểm.

EDIT:

Với hai điểm của đường, bạn sẽ cần phải tính toán bình thường của vector tham gia những điểm này. Information on that is here..

Normalize vector này, nhân với d, thêm vào mỗi điểm.

+0

Sau khi chơi với nó một chút tôi đã tìm ra! Cảm ơn bạn rất nhiều. –

2

Tính vectơ (x2-x1, y2-y1). Đây là một vectơ theo hướng của đường dây của bạn. Một vector bình thường sau đó được đưa ra bởi

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

Divide vector này bằng kích thước của nó để có được những vector đơn vị theo hướng bạn muốn

A = (y1-y2,x1-x2)/|(y1-y2,x1-x2)| 

Ngay bây giờ cho khoảng cách của bạn d điểm dịch của bạn sẽ được đưa ra bởi

NewPoint = OldPoint + d * A 
Các vấn đề liên quan