问题标签 [raster-graphics]

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 回答
493 浏览

javascript - 优化 Html5 画布中的内容渲染

我正在开发一个使用 Html5 画布的图形上下文来呈现视图层次结构的开源库。但是我想做一些性能优化,允许更快地渲染完全不透明的内容。

我怎么能实现这样的逻辑?

您是否知道有关如何实施此类系统的良好信息资源或教程?

目前我正在使用类似于 ui-kit 的基本绘图模型,每个视图都代表一个屏幕上的矩形区域。渲染引擎与视图对象分开实现,并根据包含需要重绘的脏视图的列表来渲染内容。

编辑:

库和当前渲染系统
库是一个所谓的平台或抽象层,基于画布元素动态渲染图形的能力。我目前已经实现了管理显示列表等的基础知识,但还没有优化。

当前的渲染引擎正在使用缓冲区并缓存视图的绘图命令,以便以后可以重绘视图。然而,当只有一个视图无效时,需要重新绘制层次结构的绘制过程中存在过度的外壳。

我如何实现一个系统来管理屏幕内容的脏矩形?

0 投票
4 回答
476 浏览

algorithm - 加入混合抗锯齿线时下降

在使用混合模式时加入两条抗锯齿线时遇到问题,我在它们加入的点处有所下降。通过混合模式,我的意思是我通过计算线条颜色与背景颜色的比率来绘制抗锯齿线条,因此当像素的比率为例如 70% 时,新像素为 0.7*线条颜色 + 0.3*背景颜色。我的线条抗锯齿功能基本上是由错误函数制成的(尽管我认为大多数抗锯齿功能也会出现同样的问题),如下所示:

0.5+0.5erf(-x)

因此,当两条线相遇时,一条接一条地绘制,你会得到一个下降,两条线的连接处下降到它应该处于的强度的 75%,因为在那一点上,第一条线保留了 50% 的背景,并且然后在绘制第二条线后剩下 50% 的 50% 应该留下 0%:

1 - (0.5erfc(-x) * 0.5erfc(x))

我只能假设这是绘制带有连接线的抗锯齿光栅图形的常见问题,因此它必须有一个通用的解决方案,但我不知道这是什么。谢谢!

另外:为了清楚线条是如何绘制的,线条的宽度是使用高斯函数 (e^-x*x) 制作的,并且两端使用凸起的误差函数进行四舍五入。您可以通过在 WolframAlpha 中输入 '0.5erfc(-x-5) * 0.5erfc(x-5) * e^(-y*y)' 来查看 10 px 长水平线的示例。

0 投票
1 回答
603 浏览

vector - 矢量背景图像与光栅背景图像

我目前在我的一个网站上使用光栅图像的重复模式,它并没有那么复杂以至于无法转换为矢量,但到目前为止还没有放大到在 HiDPI/Retina 上看起来不错显示。

我正在考虑将光栅图案转换为矢量,并将生成的.svg图像设置为背景,但我想知道在网站背景中使用矢量图像是否有任何缺点。

0 投票
3 回答
3200 浏览

r - 在 R 中生成栅格图

我正在尝试制作一个光栅图(如 hovmoller 图),并希望有人能提供帮助。我已经查看了 rasterVis 和其他一些人的帮助,但似乎无法让他们的示例适合我的数据,这可能需要以某种我无法理解的方式进行转换。我设法创建了绘图,但单元格的填充值与原始数据不对应。我已经复制了我的数据框示例的 dput() 文件(希望这是正确的方法)。我想要的是沿 x 轴的一年中的几天(DOY),每个 DOY 上方有 48 个矩形的 y 轴(DF 中的小时列)。这些矩形将代表每个 DOY 的半小时间隔,并根据其对应的值(DF 中的 qc 列)为 0,1 或 2 着色

到目前为止,我已经提出了以下代码,但似乎将 z 值(qc 列)分配给颜色存在问题,我认为这些值由于某种原因没有正确排列......

似乎正在发生的是填充值矩阵(z)首先沿x轴底部(从左到右)运行,然后循环到顶部,而我需要它从左下角开始并向上然后从左到右循环(希望有某种意义!)我这里的示例数据只涵盖三天,但完整的数据集将是一整年(2012 年为 366)。提前感谢您的帮助,

乔恩

0 投票
0 回答
250 浏览

math - 如何将矢量曲线轮廓包络拟合到屏幕外位图?

我正在编写一个基于矢量的绘图程序,但应该具有更像基于光栅的工具的绘图工具。例如 - 当您使用绘图板笔进行绘图时,产生的矢量笔划,以及压力差和所有内容,实际上是一个填充。矢量曲线恰好适合笔划的外部。此外,如果您拿起橡皮擦并擦除该笔划的一部分,它只会擦除您擦除的确切位置。它不仅会删除矢量点,还会在必须的地方创建新的矢量点。这些笔和橡皮擦的笔触也可以是任何几何形状——不仅在外面有轮廓,而且在中间也有孔。

我对如何做到这一点困惑了很长时间,昨晚我想到了将笔输入绘制到屏幕外位图(其中每个像素都是一位 - 被笔触触摸或未触动),然后当笔触结束(笔被抬起)程序对该位图进行矢量化,然后用适当的颜色放置矢量填充,或者对下面的矢量执行布尔运算以擦除。

我可以使用光栅绘图工具来完成这项工作(这样你就不会一直在可见表面上画线,如果你用透明度绘图,这看起来不太好),但我不知道我会如何适合此一位位图的矢量曲线。操作必须快速但不是实时的,因为它是在抬起笔后完成的。它还必须创建优化的几何图形,以便只使用描述几何图形所需的最小数量的贝塞尔曲线点。

是否有人对如何执行此操作有任何建议、解决方案、指针或参考?或者,还有其他方法吗?

0 投票
2 回答
2273 浏览

c++ - 管道中的 DirectX11 像素着色器丢失

我正在编写一个使用 DirectX 显示 MS3D 模型的程序,不幸的是,结果在屏幕上什么也没有显示。当我使用 Visual Studio 13 中的图形调试器时,我注意到管道中缺少像素着色器,如下图所示

图片

这是我的像素着色器源代码:

正如我从 Graphics Debugger 得知的那样,所有的图形事件都是正确的。我在下面列出了可能与 Pixel Shader 相关的重要事件:

我调试了上面列表中的所有函数,它们都返回 OK。没有错。我的问题是,pipleline 中缺少 pixex 着色器的原因是什么,这反过来可能导致屏幕为空。

0 投票
1 回答
490 浏览

opengl - 绘制简单的形状,哪个更高效:Shaprenderer 还是 SpriteBatch?

在我的游戏中,我有大约 50 个不同大小和不同颜色的实心圆圈分布在全屏上,它们不断调整自己的大小,创建动画。我目前正在使用Shaperenderer来渲染所有这些。这样一来,所有的圆圈看起来都很清晰,但似乎性能不是很好。我应该制作一个圆形精灵然后使用SpriteBatch而不是渲染它们Shaperenderer吗?这样做会提高性能吗?

0 投票
0 回答
359 浏览

printing - PCL:打印部分页面而不弹出

我希望能够让我的打印机(USB 上的 HP DeskJet 1280)打印出我迄今为止发送给它的所有光栅数据,而不会弹出页面。我只发送普通的光栅图形和光标定位命令——没有矢量图形,没有文本。

更准确地说,我有两个问题:

1) 将一些光栅数据发送到打印机后(使用 Transfer Raster Data ("\033*b%dW")),如何让它立即打印出来并停止,而不弹出页面?

2) 发送带有正参数的垂直光标定位命令后(例如,Vertical Cursor Positioning (Decipoints) ("\033&a%+dV")),如何使打印机立即将纸张前进到新位置并停在那里?

(请注意,即使只求解 (1) 也几乎足够了,因为可以通过发送适当高度的空白栅格间接地推进光标。)

由于 PCL 是一种页面描述语言,实际上不可能在如此低的级别上做事。但是在 PCL 文档和 Internet 中进行了广泛搜索之后,我也没有找到明确的否定答案。

打印机似乎有某种内部缓冲区来存储其数据,并且当它变得足够大时,它会刷新(即打印出)该缓冲区。如果有一个命令告诉打印机立即刷新该缓冲区而不做任何其他事情,一切都会好起来的。但是我没有找到这样的命令。甚至 "\033*rC" (End Raster Graphics) 也不会立即生效。

我正在使用 CUPS 的 USB 后端与打印机进行通信,并且已经验证(使用 usbmon)后端实际上一看到我的所有命令就将它们发送到打印机,所以这不是数据卡在的问题司机。

打印部分页面的命令包括,例如,“\033E”(打印机重置)、“\033%%-12345X”(通用退出语言)、“\033&r1F”(刷新所有页面(包括部分页面))——但是所有这些也会弹出部分页面。

有人可以建议一种聪明的方法来做我想做的事,或者确认我的印象,那就是这绝对不可能?

0 投票
0 回答
125 浏览

ruby - 如何将光栅图像转换为 jpg 等可用格式?

我有一个名为 RVG 的模糊光栅图像文件格式。它是由柯达的 carestream 传感器创建的。我希望能够打开它以通过网络软件(ruby/rails)查看。我们已安装 RMagic 并将其用于其他图像,但不支持此格式。这是示例图像的文件信息:

有没有办法读取此图像并导出为 jpg?我知道光栅图像基本上是一个带有颜色信息的网格。也许我可以逐行阅读并导出?

0 投票
0 回答
360 浏览

r - 将密度图中的主标题放入 grid.arrange 栅格堆栈数据

我正在使用函数 densityplot() 和 grid.arrange(),这是示例:

使用此代码,我的输出是:

输出 1

没有显示“title 1”,“title 2” .... 与我的数据一起使用的输出是:

输出 2

equal 不显示密度图的主标题和标签(“Jan” “Feb” “Mar” “Apr” ....)

有可能请指导我。

谢谢你!!