2013-09-27 1 views
1

저는 A (109,239), B (182,234) 및 C (140,157)의 그림과 같이 삼각형을가집니다.프로그래밍에서 줄의 길이를 늘리십시오.

저는 이것을 얻기 위해 xlib 프로그래밍을 사용하고 있습니다.

삼각형 안의 한 점에서 마우스 클릭 이벤트가 발생하면 해당 점에서 가장 가까운 꼭지점을 찾은 다음 매우 긴 길이의 삼각형 바깥 쪽 선을 확장하고자합니다.

enter image description here

어느 한 내가이 작업을 수행하는 방법에 대한 아이디어를 제공 할 수 있습니다. 내가 생각하는 것은 우리가 b (x + a, y + b)에 어떤 값 ex, b를 더해야한다는 것입니다. 그러나 어떻게 a의 값을 계산할 수 있을지 모르겠습니다. b? 당신이 2 점 P0과 P1을 알고 있다면

enter image description here

답변

0

, 당신은 어떤 X의 Y를 계산할 수 있습니다

y = (x - x0) * (y1 - y0)/(x1 - x0) + y0 

그래서 귀하의 경우에는 그 2 점은 마우스 클릭 점과 정점의 포인트가 될 것입니다.

편집

당신은 마우스 클릭의 반대편에있는 X를 선택할 수 있습니다.

x = vertexX + (vertexX - mouseX); 
+0

하지만 여기서는 x 값과 y 값을 모두 사용하지 않습니다. 또한 내가 x 값을 가져 와서 y 값을 찾으려고하면 어떤 방향으로 그려 지는지 확실하지 않습니다. 어떤 방향으로 선을 연장 할 수 있어야하는 C 꼭지점 근처의 점을 선택한다고 가정합니다. –

+0

새 지점 선택으로 그림을 편집했습니다. –

+0

@Rdvsm 원하는 x를 골라야합니다. 선택한 꼭지점에서 마우스 클릭의 반대 방향에있는 점을 사용하십시오. – user694733