问题标签 [miter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
12365 浏览

opengl - 如何将粗二维线渲染为多边形?

我有一个由二维点列表组成的路径。我想把这些变成一条三角形,以渲染一条具有指定厚度的纹理线(以及其他类似的东西)。所以本质上,二维点列表需要成为一个顶点列表,指定多边形的轮廓,如果渲染将渲染线条。问题在于处理角连接、斜接、帽等。生成的多边形需要在没有过度绘制、干净连接等的意义上是“完美的”,以便它可以被挤出或以其他方式玩弄。

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

我绝对不想要一个完整的 2D 矢量库(cairo、antigrain、OpenVG 等),其中包含曲线、弧线、破折号和所有的花里胡哨。我一直在为 OpenVG 实现和其他东西挖掘多个源代码树以找到一些见解,但这一切都非常令人费解。

我绝对愿意自己编写代码,但是有许多退化的情况(小段 + 粗宽度 + 尖角)会产生各种连接问题。即使是一点点帮助,也能节省我处理所有这些问题的时间。

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

0 投票
1 回答
248 浏览

c# - 使用 Miterjoin 围绕引导线创建线

我正在将图形绘制到 WinForms Picturebox 中。现在我正在寻找“复制”一条线(点数组)的可能性,以便两条生成的线与原始线相距固定距离。就像在这张照片中一样,我有红线,想要得到黑线:

线条图片 http://img227.imageshack.us/img227/2341/linesb.png

我想过只是将线向上/向右/向上移动几个像素,但这会导致奇怪的重叠线。

有没有其他方法可以满足我的要求?任何想法将不胜感激。谢谢!

0 投票
2 回答
537 浏览

actionscript-3 - ActionScript - 使用 JointStyle.MITER 清除图形错误?

在清除/重绘图形时,我遇到了使用 JointStyle.MITER 的不良影响。

我的项目涉及管理具有圆形和锐利边缘的自定义线条图形,这就是我想使用斜接样式的原因。

当线条粗细大大增加时,即使是线条的圆形区域也会受到斜接样式的影响。虽然我觉得这很不幸,但这是可以理解的,而不是我所指的错误。当减小线条粗细并不能完全清除图形时会发生错误(?),每次粗细变化时都会按照代码的指示这样做,从而在线条曾经所在的位置留下线条图形的伪影。工件也会留下锋利的边缘,而不仅仅是圆角。

我在 Mac OS X Snow Leopard (10.6.4) 上使用 Flash Player 版本 10.1.53.64。

您可以通过运行下面的示例代码来测试它。使用左右键盘箭头更改圆形矩形的笔画粗细。

更新: 图形伪影是肤浅的。在它们出现后将形状拖动到它们的位置将删除它们。使用拖动功能更新了代码。

替代文字

0 投票
1 回答
54 浏览

racket - 尽管使用了“对接”和“斜接”,为什么我的球拍笔会在两条线连接处绘制额外的像素?

我正在制作两个正方形,如下图所示。一红一蓝方块

黄色圆圈不是图像的一部分,但它显示了一些我期望不存在的像素。我没有计算机图形方面的经验,但从我在文档中读到的内容来看,这些像素不应该存在。我是否有不切实际的期望,或者我做错了什么以获得这些“溢出”像素,如上图中黄色圆圈所示?

这是生成框的代码。

0 投票
1 回答
29 浏览

drawing - 如何使用描边路径“锐化”图像中路径的边缘?

我正在尝试在锯齿状路径上使用笔划路径功能,如图所示。我宁愿保持线宽、帽子样式、连接样式相同。我已经尝试调整斜接限制,一直到 100,但我仍然在路径的左下角得到那个圆边。与右侧相比,它明显不同。

我已经尝试过调整笔触路径部分中的所有设置,甚至更改我的路径、增加角的角度等,但没有任何效果。有任何想法吗?

右角笔划路径的圆角边缘

0 投票
0 回答
44 浏览

python-3.x - 如何在 python pyclipper 库中更改 miterlimit?

我正在尝试使用 pyclipper 库将多边形偏移给定值,我尝试了这个。

我想使用斜接连接类型来获得锋利的边缘。据我所知,如果边缘处多边形的内角小于 60 度,则偏移多边形的边缘变为平方。pyclipper 库中的默认 miterlimit 是 2。我想增加限制,好像多边形的内角小于 60,我也想为它们获得锐利的边缘。有没有办法改变miterlimit来解决这个问题?