相关疑难解决方法(0)

如何将粗2D线渲染为多边形?

我有一条由2D点列表组成的路径.我想将它们变成一条三角形,以渲染具有指定厚度的纹理线条(和其他类似的东西).因此,2D点的列表基本上需要成为顶点列表,指定多边形的轮廓,如果渲染将呈现该线.问题在于处理拐角连接,斜角,盖帽等.在没有过度拉伸,清洁连接等意义上,所产生的多边形需要是"完美的",以便它可以被挤压或以其他方式玩弄.

是否有任何简单的资源可以提供算法洞察,代码或有效执行此操作的更多信息?

我绝对不想要一个完整的2D矢量库(cairo,antigrain,OpenVG等),包括曲线,弧形,破折号以及所有的铃声和​​口哨声.我一直在挖掘OpenVG实现和其他东西的多个源代码树以找到一些见解,但它们都非常复杂.

我绝对愿意自己编写代码,但有很多退化情况(小段+粗宽+尖角)会产生各种连接问题.即使是一点点帮助也可以节省我数小时的时间来处理它们.

编辑:这是一个例子,如果你只是从顶点到顶点,那些导致丑陋的退化情况.红色是原始路径.橙色块是以指定宽度绘制的矩形,对齐并以每个段为中心.

http://www.freeimagehosting.net/uploads/52dc639727.png

opengl geometry path line miter

22
推荐指数
2
解决办法
1万
查看次数

如何在任何线条周围绘制轮廓

在此输入图像描述

所以我有一个由n个点组成的任意线(见图1所示的例子)

我想围绕这条线绘制一个轮廓(见图2),所以我需要计算周围多边形的点.

我开始在线上进行扩张,但这不起作用 - 见图3

有关如何做到这一点的任何建议?

我怀疑计算每个线段的法线是否用于翻译下面的新线和在当前位置上方的新线,然后将每个新线延伸到无穷大并将点定义为交叉点?

math geometry vector outline

9
推荐指数
3
解决办法
2571
查看次数

如何渲染填充路径?

用于渲染填充路径的矢量图形中使用的标准算法是什么?

我不仅对渲染笔画的过程感兴趣,我还想知道如何填充形状 - 如何确定给定的点是在路径的内部还是外部(我相信甚至指定内部和外部的规则)意思是不是一件简单的事情).

algorithm vector-graphics

5
推荐指数
1
解决办法
955
查看次数

没有尖点的线偏移(平行线)

我正在尝试在附件上绘制偏移到主线的线条. 在此输入图像描述

我的代码有问题.它在线上产生交叉点和尖点.(附件)

在此输入图像描述

也许有人可以帮我这个代码提供我可以遵循的任何工作示例.

// LEFT SIDE OF MAIN LINE
     int numberOfLines = 10;
     float offset = 10f;
     lastLinePoints = outerPoints; // outerPoint = Points from Main Line
     for(int i = 0; i < numberOfLines; i++)
     {
         List<Vector3> tempPoints = new List<Vector3> ();
         for (int k = 0; k < lastLinePoints.Count; k++) {
             if (k + 1 < lastLinePoints.Count) {
                 Vector3 direction = lastLinePoints [k + 1] - lastLinePoints [k];
                 // up direction:
                 Vector3 up = new Vector3(0.0f, 1.0f, 0.0f);
                 // …
Run Code Online (Sandbox Code Playgroud)

c# math graphics vector

5
推荐指数
1
解决办法
1649
查看次数

标签 统计

geometry ×2

math ×2

vector ×2

algorithm ×1

c# ×1

graphics ×1

line ×1

miter ×1

opengl ×1

outline ×1

path ×1

vector-graphics ×1