【发布时间】:2016-04-02 16:47:27
【问题描述】:
我正在尝试将 2d 形状轮廓附加到样条曲线。在样条曲线的某些点上,我的几何图形中出现了奇怪的扭曲伪影,如图所示。如何使用 Frenet-Frame 方程避免这种情况?
我目前对法线、副法线和切线的计算:
forward_tangent_vector = glm::normalize(pointforward - pointmid);
backward_tangent_vector = glm::normalize(pointmid - pointback);
second_order_tangent = glm::normalize(forward_tangent_vector - backward_tangent_vector);
binormal = glm::normalize(glm::cross(forward_tangent_vector,second_order_tangent));
normal = glm::normalize(glm::cross(binormal, forward_tangent_vector));
//translation matrix
T = glm::translate(T, pointmid);
normal_axis = glm::vec3(0, 1, 0);
rotationAxis = glm::cross(normal_axis, forward_tangent_vector);
rotationAngle = glm::acos(glm::dot(normal_axis, forward_tangent_vector));
//rotation matrix
R = glm::rotate(R, glm::degrees(rotationAngle), rotationAxis);
【问题讨论】:
标签: c++ opengl curve spline glm-math