首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何绘制小于1像素宽的线?

如何绘制小于1像素宽的线?
EN

Stack Overflow用户
提问于 2016-09-06 19:26:46
回答 1查看 1.3K关注 0票数 1

在opengl的上下文中,我发现了两个解决方案:

  1. 如果线条小于1像素,则绘制1像素线,但使用alpha混合使其部分可见。+更好的结果为z缓冲的-problems (您必须对行进行排序)
  2. 绘制一个GL_QUAD而不是线-你必须自己计算4个顶点坐标-在应用程序或使用顶点着色器。+使用亚像素精度正确绘制的细线-line可能会出现‘虚线’,因为片段适合‘两个像素’在屏幕上,因此没有被绘制。“

boards/showthread.php/146742-Line-width-less-than-1-pixel

我如何在处理过程中做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-06 19:41:21

您可以只使用strokeWeight()函数并传入一个小于1的值。

代码语言:javascript
运行
复制
strokeWeight(.5);
line(0, 0, width, height);

更多信息可以在参考文献中找到。

或者如果你想更紧密地配合OpenGL方法.

如果线条小于1像素,则绘制1像素线,但使用alpha混合使其部分可见。

只需将stroke()设置为包含alpha的值即可。就像这样:

代码语言:javascript
运行
复制
stroke(0, 128);
line(0, 0, width, height);

更多信息可以在参考文献中找到。

绘制一个GL_QUAD而不是线-你必须自己计算4个顶点坐标-在应用程序或使用顶点着色器。+使用亚像素精度正确绘制的细线-line可能会出现‘虚线’,因为片段适合‘两个像素’在屏幕上,因此没有被绘制。“

您可以使用beginShape()函数并传入一个参数QUADS来绘制一个四角图。就像这样:

代码语言:javascript
运行
复制
beginShape(QUADS);
vertex(0, 0);
vertex(0, 0);
vertex(width, height);
vertex(width, height);
endShape();

同样,更多的信息可以在参考文献中找到。

然后可以使用各种着色器函数来使用着色器。您猜到了:更多的信息可以在参考文献中找到。

除了向你指出谷歌和参考文献之外,很难回答一般的“我该怎么做”这样的问题。推荐信应该是你的第一站。阅读它并查找设置alpha值、绘制四角体或使用着色器的函数。堆栈溢出更适合特定的“我尝试了X,预期的Y,但得到了Z”类型的问题,所以您可以做的最好的事情就是,试试,如果你被卡住了,就发布一个MCVE。祝好运。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39356441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档