Я работаю над 3D-оберткой. Все работает нормально. Я теперь зациклился на том, как лучше всего представить свои кости графически. Я понимаю, что я могу нарисовать кости как простые линии от одного сустава к другому.Как рисовать 3D-карту графически
Тем не менее, я очень хочу нарисовать нечто похожее на изображение блендеров графического представления костей блендера (с головами и хвостами).
Я пример кода У меня (внизу) работает только для стыков, которые направлены в направлении (0,1,0). Если у меня кость (1,0,0), то она не точно отражает эту кость.
Итак, мой вопрос: есть ли математическое уравнение для ориентации этих вершин от (0,1,0) до некоторого произвольного векторного направления, основанного на том, как сталкиваются мои костяные суставы.
glm::vec3 vert[14];
vert[ 0] = glm::vec3(0.0f, 0.0f, 0.0f);
vert[ 1] = glm::vec3(-0.2f, 0.2f,-0.2f);
vert[ 2] = glm::vec3(0.2f, 0.2f,-0.2f);
vert[ 3] = glm::vec3(0.0f, getLength(), 0.0f);
vert[ 4] = glm::vec3(-0.2f, 0.2f,-0.2f);
vert[ 5] = glm::vec3(-0.2f, 0.2f, 0.2f);
vert[ 6] = glm::vec3(0.0f, 0.0f, 0.0f);
vert[ 7] = glm::vec3(0.2f, 0.2f,-0.2f);
vert[ 8] = glm::vec3(0.2f, 0.2f, 0.2f);
vert[ 9] = glm::vec3(0.0f, 0.0f, 0.0f);
vert[10] = glm::vec3(-0.2f, 0.2f, 0.2f);
vert[11] = glm::vec3(0.0f, getLength(), 0.0f);
vert[12] = glm::vec3(0.2f, 0.2f, 0.2f);
vert[13] = glm::vec3(-0.2f, 0.2f, 0.2f);
Если у вас есть направление и ориентация кости, вы можете построить вокруг нее многогранник с простой векторной алгеброй. Вы также можете создать «запасную» модель (на первичной оси), а затем повернуть и масштабировать ее в соответствии с костью, которую вы хотите отобразить. – didierc