【发布时间】:2015-07-02 13:48:11
【问题描述】:
我今天有一个棘手的问题,涉及很多向量。我试图让他们保持直截了当。我有的是这个形状(主要是 12 个五边形的六边形):http://i.imgur.com/WDSWEcF.jpg
我想在它们的 12 个点中放置 12 个五边形网格。我首先在原点(该形状的中心)创建 12 个网格,然后使用以下代码旋转并将它们移动到位。
for (int i = 0; i < 12; ++i) {
Vector3 pentPoint = pentPoints.get(i); // The center of each pentagon.
ModelInstance pent = pents.get(i);
Vector3 direction = (pentPoint).cpy().sub(new Vector3(0, 0, 0))
.nor();
direction.set(direction.x, direction.y, direction.z);
pent.transform.setToRotation(Vector3.Y, direction);
pent.transform.setTranslation(pentPoint);}
现在,这几乎就是我所需要的。结果是:http://i.imgur.com/Ch5Jhb8.jpg。现在忘记缩放,您可以看到五边形旋转不正确。它不与它的插槽对齐。我知道我可以根据每个五边形的一些 值 使用 pent.transform.rotate(Vector3.Y, *value*); 修复这种旋转。问题是,我不知道如何计算这个值。
谁能帮助或指出一些资源?或者,我可以利用我知道形状中每个顶点的坐标这一事实,通过使用 LibGDX 的模型构建器绘制三角形来填充这些五边形。我认为这比定位.objs 的性能要差。想法?
【问题讨论】:
标签: vector libgdx geometry transform