如何获得路径的轮廓?

时间:2015-11-27 02:48:09

标签: path outline

我有点如下:

  1. [[1,4],[2,8]
  2. [[5,4],[3,8],[5,4]
  3. 然后我创建一条线(lat说宽度为2),我想得到线条的轮廓(路径),参见示例图像的黑线。

    在一个世界中,我有墙角的坐标,我想弄清楚墙的轮廓路径(在示例图像中,红色部分是坐标,黑色线是我想得到什么)

    Example Image

1 个答案:

答案 0 :(得分:0)

我一直在做类似的项目。我决定使用向量来获取沿着路径的平行线,通过获得向量矢量和点1到2的向量的交叉积,这将得到一个指向远离可用于获得的线的向量的向量平行线的起点和终点

CVec3 a, v1, v2, zero, up(0, 1.0f, 0);
zero.set(0,0,0);

v1.sub(points[1], points[0]);
v2.sub(points[2], points[1]);
a.crossProduct(up, v1);
a.normalise();

result[0] = result[1] = a;
result[0].mult(wallwidth).add(points[0]);
result[1].mult(-wallwidth).add(points[0]);
result[2].set(result[0]).add(v1);
result[3].set(result[1]).add(v1);

结果[0]到结果[2]是一行,而结果[1]到结果[3]是另一个。我还没弄清楚如何连接线条,这样它们就可以在不改变线宽的情况下制作角落