Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 扩展网格顶点位置_Java_Geometry_Mesh - Fatal编程技术网

Java 扩展网格顶点位置

Java 扩展网格顶点位置,java,geometry,mesh,Java,Geometry,Mesh,我有一个物理库不断更新的2d点。我知道它们的局部位置,并将其存储在顶点数组中: for (int i = 0; i < bodies.size(); i++) { Vec2 pos = bodies.get(i).getLocalPoint(center); vertices[i * 2] = -pos.x; vertices[i * 2 + 1] = -pos.y; } for(int i=0;i

我有一个物理库不断更新的2d点。我知道它们的局部位置,并将其存储在
顶点数组中

for (int i = 0; i < bodies.size(); i++) {
    Vec2 pos = bodies.get(i).getLocalPoint(center);

    vertices[i * 2]     = -pos.x;
    vertices[i * 2 + 1] = -pos.y;
}
for(int i=0;i
每个点通过弹簧与其相邻点相连,并且可以向任何方向移动。由于每个实体都是连接的,因此多边形作为一个整体也可以旋转和移动。网格示例:

我使用这些多边形位置来映射纹理,并在稍后进行一些绘制。现在我想扩展(生长)每个顶点位置,以便缩放贴图纹理。我正在尝试实现这样的结果(蓝色点表示扩展的顶点,还要注意内部顶点也会扩展):

我所尝试的:

  • 将每个顶点乘以偏移值,如果实体旋转,顶点位置将变形
  • 根据距中心的距离,通过偏移值增加每个顶点向量的大小。如果主体是静止的,则此操作有效,但如果主体旋转,则其变形与缩放相同
  • 使用图形库进行缩放也会得到与以前尝试类似的结果。由于要进行缩放,需要旋转绘制的网格,但是网格已经旋转和变形
如何延伸顶点,使它们即使在身体旋转时也不会变形

编辑

下面是这些实体的一个示例,用于为问题提供一些上下文:

我希望达到的目标是:


均匀乘以顶点坐标和旋转不会使系统变形。你是如何完成这个过程的?如果我正确理解你的问题,你是在谈论第一点吗?如果是这样,在创建网格时,我会存储一个值,该值表示我希望在
x
y
方向上扩展每个顶点的程度,然后在更新
顶点
数组时,我会执行
顶点[I*2]=-pos.x*scale.x;顶点[i*2+1]=-pos.y*scale.yx
y
方向上扩展每个顶点的程度,然后在更新
顶点
数组时,我会执行
顶点[I*2]=-pos.x*scale.x;顶点[i*2+1]=-pos.y*scale.y