2013-10-12 2 views
0

나는 시작과 끝 점으로 정의 된 선분을 가지고있다.파이썬에서 선분을 어떻게 확장합니까?

L = [(x1, y1), (x2, y2)] 

그래서

   (x1, y1)      (x2, y2) 
L:    A-------------------------------B 

지금이 두 점 때문에

   a           a 
L:  A'--------A-------------------------------B-----------B' 

그래서 나는 점 A의 좌표를 업데이트해야처럼 떨어져 당겨 라인을 확장 하고자하고 B.

A'A = B'B = a

어떻게 파이썬에서 그것을 할 가정하자?

This question은 상당히 관련이있을 수 있지만, 주로 그림을 시각화하는 대신 작업을 수행하는 알고리즘에 중점을 둡니다.

+2

당신은 단지 다른 언어처럼 파이썬에서 할 - 번역을 계산하고 좌표에 추가하여,이 난이 생각 프로그래밍 문제 – lejlot

+2

에 근처에도없는 파이썬 문제보다는 수학 문제. –

답변

2

사용하여 벡터 수학 :

B = A + v 
where 
    v = B - A = (x2-x1, y2-y1) 
    ||v|| = sqrt((x2-x1)^2 + (y2-y1)^2) 

The normalized vector v^ with ||v^|| = 1 is: v^ = v/||v|| 

To get the values of A' and B' you can now use the direction 
of v^ and the length of a: 
    B' = B + a * v^ 
    A' = A - a * v^ 
관련 문제