问题标签 [line-drawing]

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 投票
0 回答
91 浏览

image - 细化后如何填补图像中的空白?

如何填补因变薄而出现的空白?第一个图像是细化前的图像,第二个是细化后的图像,第三个是我需要连接的像素示例。我正在使用 MATLAB R2013a。

我在细化中使用了这段代码:

细化前的图像:

细化前的图像

细化后的图像:

细化后的图像

我需要连接的示例:

我需要连接的示例

当我使用BW2 = imfill(A,'holes');输出是:

使用 imfill 输出

当我使用

输出是:

输出 simg imclose

0 投票
0 回答
302 浏览

c++ - 快速的 2D 线条绘制

几个月前,我用 C++ 编写了一个(高质量)zen photon ripoff,我想从头开始。很有趣,我设法得到了一些不错的结果。最大的性能瓶颈是线条绘制部分,因为我需要绘制数百万条线来“追踪光线”。

我最终将Micah Elizabeth Scott 的代码直接用于她的 github,这比我尝试过的所有方法都快。但我想知道如何才能更快地画线。问题是,我不仅需要画出数百万条线,而且还需要“将它们加起来”。

我的程序分为两个主要任务。第一个包括从光源随机投射光线,计算与物体的交点,反弹它们等。

第二部分是画线。最终图像被表示为一个简单的双向量(每个像素 3x64 位),绘制一条线包括向该向量添加值。具体来说,当我使用 Bresenham 算法时,我对与线通过的像素相对应的向量的单元格设置了 +=1。

通过将此数组的值映射到 [0,255] 来渲染图像。然后我可以调整亮度,进行伽马校正等。

我尝试使用 OpenGL 和 Cairo 演示代码来绘制线条。但我无法获得我想要的行为:在像素数组(或表面或缓冲区或其他任何东西)中以高精度添加线条,然后从该数组渲染图像。

您对我如何快速在彼此之间画线以便我可以像我刚才描述的那样操纵它们有什么想法吗?

0 投票
1 回答
438 浏览

python - 通过 3D 网格绘制抛物线的算法

我目前正在 Godot 引擎中编写一个战术 RPG,它使用一种名为 godotscript 的类似 Python 的语言。我已经到了需要绘制弹丸穿过空间的路径并弄清楚它的路径是否被阻挡的地步。游戏空间的构造就像一个 3 维坐标网格,所以我认为某种画线算法可能会起作用。

对于直线行进的弹丸,我使用 3D 版本的 Bresenham 画线算法来收集弹丸通过的点列表,然后检查它们中是否有任何被阻挡。效果很好!

对于实际上遵循真实弹丸运动的弹丸,我不太确定要使用什么算法。我有一个原点、一个目标点和对象的起始速度,它们应该足以为抛物线生成一个函数,我只是不确定绘制它的线的算法。

任何帮助将不胜感激!

0 投票
1 回答
63 浏览

javascript - 如何动态地在第一个点和最后一个点之间画一条线

我正在制作一个程序,用户可以在其中粗略地绘制一个房间,而不是他/她需要从墙壁中放入长度,然后我的程序在新的画布上对其进行详细绘制。我得到了所有的线条,但由于倾斜的线条,只有第一点和最后一点之间的最后一条线似乎不起作用。

我已经尝试了一些代码来创建一个新的终点,因此它会正好在起点下方,但不会画线。

以下是以下代码的结果:

在此处输入图像描述

我希望在第一点和终点之间有一条线,但这条线不会绘制。我该如何解决这个问题?我是否需要为新点制作另一个 PointArray 并从这些新点中绘制它,还是会出现同样的问题?

0 投票
1 回答
1164 浏览

pine-script - 如何更正我在 line.new() 中的负索引?脚本

//我的line.new函数有问题。我想要一条在 0830-1630 之间从接近到接近的线,所以可能是对角线......

0 投票
1 回答
1739 浏览

python - 如何在熊猫中绘制类似“眼图”的图?

我有一堆类似的曲线,例如 1000 个幅度、频率和相位略有不同的正弦波,它们看起来像这个图:

在此处输入图像描述

在上图中,每个正弦波的颜色来自标准 pandas 颜色图;我想得到一个颜色与曲线的“密度”相关的图。

我的第一个想法是模仿旧的示波器屏幕(搜索“持久模式”或查看https://en.wikipedia.org/wiki/Eye_pattern了解一些背景):

在此处输入图像描述

所以我为所有曲线设置了一种颜色:

在此处输入图像描述

但情节“平坦”,“密度”信息不太好。

我真的很想要这样的情节:

在此处输入图像描述

在上图中,黄色表示 25 到 30 之间的多条曲线“通过”同一点(或同一像素)。我手工制作了上面的情节,我想问是否可以用 pandas 或 matplotlib 做得更好、更直接。

上面的数字是用这个程序制作的,因为 Bresenham 的线算法没有优化,所以需要一段时间(十几或几秒钟)。

0 投票
2 回答
823 浏览

java - 你如何在像素数组中画一条线

我喜欢最大限度地控制屏幕,所以我必须控制每个像素,这有利有弊。一个缺点是我真的没有任何内置函数的帮助。所以我不知道如何画一条线。我试图制作一个函数来处理线条画,但我无法让它工作!这是我用来画线的代码

它使用了一个名为 pixl 的函数,因此它可以轻松地将一个像素绘制到像素数组中,只是为了澄清为什么在代码中有一个名为 pixl 的函数。

当我尝试使用此代码时,它不会崩溃,就像处理通常在出现错误时那样!它只是不起作用,而是什么都不做!

我想在这个问题上得到一些帮助,拜托。

0 投票
0 回答
98 浏览

algorithm - 了解 Bresenham 算法的修改版本?

我最近在阅读 Alois Zingl 的一篇关于光栅化算法的论文。在我完全失去对算法的理解之前,我没有走多远。根据我的研究,我相信这个算法是 Bresenham 画线算法的某种版本。话虽这么说,但在某些方面它似乎不像我读过的那样。我在 OpenGL 中测试了该算法,它运行良好,但我不知道如何......这是 C/C++ 样式语法中的代码:

我曾尝试对 Bresenham 的算法进行研究,但这似乎并不相同,因为它适用于所有斜坡。我已经对等式进行了一些数学运算,但对我来说没有任何意义的一件事是与 和 进行比较意味着dy什么dx。在我尝试从中派生算法时y = mx + b,这没有任何意义。我的另一个问题是为什么err每帧乘以两个。我不明白这一点。这是我画线的尝试。它并没有真正起作用,但它可能有助于理解我的大脑来自的方向。(为了简化,我删除了x0y0)提前致谢!

0 投票
1 回答
58 浏览

javascript - SVG路径绘制动画 - 用anime.js绘制线条,如何阻止线条重叠

我使用anime.js 绘制了以下SVG 线条图,但由于某种原因,这些线条在动画过程中似乎重叠。我玩过所有设置,包括删除循环、更改方向等,但我所做的任何更改似乎都对此没有影响。根据文档,strokeDashoffset参数是此类动画的设置,但我找不到与此相关的其他文档。

会不会是 SVG 本身?

https://codepen.io/lol4000/pen/VwzpBVL

下面的代码:

0 投票
0 回答
66 浏览

python - 如何在 Python 中使用 OpenCV 绘制穿过任意点的两条线之间的最短距离?

我有一张画有线条的图片。

而且,我想画一条通过任意点的两条线之间距离最短的直线。使用Python OpenCV

这是一个可以从原始图像中提取绿色并用鼠标从细化图像中绘制点的代码。

这是一张结果图,我用鼠标画了一个点。

在此处输入图像描述

我想画这样的图。

在此处输入图像描述