현재 두꺼운 폴리선 그리기 프로젝트를 진행 중이고 OpenGL에서 보간법을 사용하고 있습니다. 나는 필요한 모든 포인트를 계산할 수 있었지만 포인트를 두 개 더 뽑을 필요가있다. 한 지점을 두 지점을 연결하는 선에 직각으로 변환해야합니다. 아래의 스케치는 포인트가 무엇인지 보여줍니다. 점 L은 AB와 직각으로 L과 nJ 사이의 거리로 변환됩니다 (B는 중심 점임). 비슷한 것은 nK로 번역 된 것입니다.라인과 직교 좌표 변환
이float alpha = atan2(B.y - A.y,B.x - A.x) - deg90;
float alpha2 = atan2(C.y - B.y, C.x - B.x) - deg90;
nJ.x = L.x + w*cos(alpha); // w is distance between A1 and A2
nJ.y = L.y + w*sin(alpha);
nK.x = L.x + w*cos(alpha2);
nK.y = L.y + w*sin(alpha2);
코드는 모든, 몇 가지 포인트 만 작동합니다
나는 코드를 작성했습니다. 위의 nJ와 nK 계산에서 노래를 고쳐야하지만 어떻게해야할지 모르겠다. 누구 제안? 이 벡터 시계 반대 방향으로 90도 회전
lhs(v) = [-v.y, v.x]
:
이것은 철저한 대답 이었지만 내 질문에는 해당되지 않았습니다. 내가 포인트 A1, A2, C1, C2, J, K, I 및 L을 가지고 있다고 말했듯이 계산할 필요가있는 것은 Jn (코드 nJ에서)과 Kn입니다. –
@M_global 질문의 문구가 분명하지 않았습니다 ...나는 그 부분으로 업데이트 할 것입니다 (그것은 쉽습니다). –
탁신 이것은 매우 도움이되었고 내 질문이 맑지 않은 것이면 유감입니다. 다시 한 번 나는 당신이 제안한 것을 해 왔지만 그것은 일부만을위한 것이지 모든 것이 아닙니다. –