현재 4 차 베 지어 곡선을 추가하여 베 지어 곡선을 생성했습니다. GL_LINES
을 사용하고 있습니다. 각 베 지어 점에서 접선, 일반 및 비 전형적인 법선을 그릴 필요가 있습니다.베 지어 곡선의 각 점에 접선을 그리고 그립니다. opengl
는 지금까지 내가 아는 한, t의 주어진 값에 접선을 찾기 위해, 방정식 내가 현재 다음과 같은 방법으로 위의 식을 사용하고
P'(t) = 4 * (1-t)^3 *(P1 - P0) + 12 *(1-t)^2*t*(P2-P1) + 12 * (1-t) * t^2 * (P3-P2) + 4 * t^3 * (P4-P3)
입니다. j는 X, Y, Z 값에 대응 tangentPoints
temp = 1-t;
tangentPoints[val].XYZW[j] = (4 * pow(temp, 3)*(V[k + 1].XYZW[j] - V[k].XYZW[j])) + (12 * pow(temp, 2)*t*(V[k + 2].XYZW[j] - V[k + 1].XYZW[j])) + (12 * (temp)*pow(t, 2)*(V[k + 3].XYZW[j] - V[k + 2].XYZW[j])) + (4 * pow(t, 3)*(V[k + 4].XYZW[j] - V[k + 3].XYZW[j]));
는 정점 날에 의해 형성되는 구조이다. V는 제어점의 정점 배열입니다.
값 t와 해당 탄젠트 값 (dx)의 베 지어 곡선 (x)의 점 사이에 선을 그립니다. 그러나 (x, dx) 사이의 접선을 그리는 동안 무언가를 얻습니다. 이렇게 ((x, dx)에서 선 그리기).
하지만 대응 탄젠트 포인트들 각각에 베지 포인트를 더하고 때, 즉, I는 (X, X + DX) 사이의 선을 그려 올바른 결과를 얻고, 오른쪽 이미지를 얻고
이 때문에 또한 주어진 베 지어 점의 접선 정상 그리기 통찰력을 제공하는 이유사람은 말해 줄 수.
그래도 일반 그리기도 마찬가지입니다. P (t)와 P (t) + normal (t) 사이에 선을 그리는 것을 의미합니다. – sss999
@ sss999 : 본질적으로 그렇습니다. 탄젠트/노말/어떤 것을 속도/곡률/기타에 비례하지 않고 항상 벡터를 정규화하여 고정 된 크기로 그리도록 선택할 수 있습니다. 예 : 접선에 대해 'P (t) + P'(t)/| P '(t) |'. 'normal'은 아마 이미 정규화되어있을 것입니다. – ybungalobill
3D의 경우 먼저 커브의 점에 대한 이동 평면을 찾아야하지만 * super * 복잡하지 않으며 http://stackoverflow.com/a/에서 다루기 때문에 좀 더 많은 작업이 있음에 유의하십시오. 25458216/740553 –