问题标签 [paint]

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 投票
5 回答
22981 浏览

python - 如何使用 Python 和 pygame 创建 MS Paint 克隆

如我所见,有两种方法可以处理鼠标事件来绘制图片。

第一个是检测鼠标何时移动并画一条线到鼠标所在的位置,如图所示。但是,这样做的问题是,对于较大的画笔大小,每条不直的“线”之间会出现许多间隙,因为它使用线条的笔触大小来创建粗线。

另一种方法是在鼠标移动时绘制圆圈,如图所示。这样做的问题是,如果鼠标移动的速度快于计算机检测到鼠标输入的速度,每个圆圈之间就会出现间隙。

这是我的两个问题的屏幕截图:

http://imgur.com/32DXN.jpg

实现像 MS Paint 这样的画笔的最佳方法是什么,画笔大小相当大,线条的笔划没有间隙或每个圆圈之间没有间隙?

0 投票
4 回答
3750 浏览

c - 简单的开源绘画程序

我正在尝试扩展类似绘画的程序,为其添加自定义功能。你能推荐一个用 C 语言编写并使用我可以扩展的 GTK+ 库的简单开源画图类程序吗?它应该在 Linux 和 Windows 中编译(使用 MinGW)。谢谢。

编辑:

我找到了这个,它看起来像我正在寻找的东西,但如果它存在,我想要更简单的东西。

0 投票
1 回答
1550 浏览

c# - 如何使用现有的 ToolStripRenderer 绘制托管的 NumericUpDown?

我有一个控件,它在 a 中托管 aNumericUpDownToolStripControlHost公开了NumericUpDown的属性。从功能上讲,这很好,但是当它放在 a 上时,它在视觉上与其他sToolStrip不匹配。ToolStripItem

我想使用ToolStrip现有的 'sToolStripRenderer以类似于控件上的ToolStripComboBoxes 的方式绘制控件。我对创建自定义ToolStripRenderer来执行此操作不感兴趣,因为我希望使用该控件的其他人能够将它与他们选择的任何渲染器一起使用。

我已经尝试在托管控件类和托管控件类中覆盖OnPaintOnPaintBackground使用渲染器的绘图方法,但我所能实现的就是在边缘周围有一个未绘制的区域;旋转按钮仍然使用系统主题绘制。

如何NumericUpDown使用现有的绘制托管ToolStripRenderer

0 投票
2 回答
7892 浏览

delphi - 如何判断 Delphi 控件当前是否可见?

我需要一种方法来让自定义控件(从 TCustomControl 继承)来判断它当前是否可见。我不是在谈论 .Visible 属性;我的意思是它现在是否真的显示在屏幕上。有谁知道如何做到这一点?

0 投票
1 回答
2474 浏览

c++ - C++/Qt:绘制插入符号

我正在学习Qt。我刚刚开始通过继承 QAbstractScrollArea 从头开始​​编写文本编辑器。我这样做只是为了练习。但现在我面临显示插入符号的问题。我想到的是painter.drawLineQTimer。您能否就此提出一些建议。我也很高兴听到一些实施块和下划线插入符号的策略。

题外话:这是一个错误吗?StackOverflow 说这个问题有两个答案,但我只看到一个!

0 投票
3 回答
4930 浏览

iphone - 如何在 iPhone 屏幕上用线条绘制签名?

我想让用户在 iPhone 屏幕上画一个签名,所以我添加了 UIView 的一个子类,并在它的“touchesMoved”方法中添加了一些代码。

我用小矩形绘制它,结果是逐点绘制。因为太丑了,我想用线条画出签名。但是如何区分firstTouch和lastTouch呢?如果我只使用'touchesMoved'方法,我只能得到一个接触点。

0 投票
2 回答
1362 浏览

reverse-engineering - 逆向工程旧油漆程序

我有几个非常老的基于 MSDos 的绘图程序。他们在调色板索引的图像缓冲区上工作。他们有许多壮观的形状绘制工具、画笔和效果,这些工具在任何现代绘画程序中都不存在——尤其是在停留在低调色板索引图像的“界限”内时。我想在一个现代程序中重现许多这些美妙的工具,也许让我和公众再次更容易使用它们,而不必启动像 dosbox 这样的模拟器。但我有一个问题。

虽然很多这些画笔和工具和东西都有明显的功能,但它们的实现应该相当简单。但是对于其他工具,它们的操作原理就不是那么明显了。我会被困在确定一个正确或忠实的算法来实现这些。

如果你是我,你会采取什么方法?是否有现成的反编译器/反汇编器可以处理这样的旧程序?或者你会采取一些不同的方法,比如有条不紊地测试不同输入的算法来推断底层函数?一些不同技术的组合?就这些程序中的一行而言,这些(商业)程序的原作者是众所周知的,现在是狂热的开源倡导者。我应该尝试直接联系他们并询问吗?我在逆向工程方面不是特别有经验,所以我不知道从哪里开始。

编辑:似乎“问,你会收到”确实有效。

编辑 2:查看http://animatorpro.org以获取我...获得源代码的程序的源代码。豪华油漆也不错,但丹席尔瓦似乎已经从地球上消失了。

0 投票
1 回答
1798 浏览

java - 如何从 JComponent 上的 paint 方法绘制虚线?

我必须在 JComponent 中绘制虚线或虚线。我怎么做?

0 投票
3 回答
164 浏览

.net - 我的自定义“Horizo​​ntalRule”控件做错了什么?

我编写了以下(非常简单的)控件以在应用程序中使用(为简洁起见,删除了注释):

免责声明:我是绘制自己的控件的新手。

我选择根据Vista UX 指南中的建议以这种方式画线,该指南建议使用高度为 1 的蚀刻矩形作为分隔符。

当静态时,这看起来不错,但我注意到如果我将此控件放在窗口中并调整它的大小(例如通过锚点),我会得到重绘工件。我在整个客户矩形的宽度上重新绘制了我的边框,但这就像它实际上并没有被绘制一样。在 Horizo​​ntalRule 的构造函数中或以嵌入的形式启用 DoubleBuffered 似乎也没有什么区别。

我究竟做错了什么?

更新:

根据建议,我尝试最后调用 base.OnPaint 而不是第一个。我不知道那会改变什么,而且它似乎也没有改变任何东西。

不绘制背景没有任何用处。我仍然得到伪影,但我也没有得到背景颜色,所以我看到了水平线下方的任何图像。

0 投票
1 回答
2153 浏览

c# - 展开 Winform 窗口时,虚线矩形显示为实心

我在自定义绘制虚线矩形时遇到了 GDI+ 问题。

当窗口大小增加或向上/向下滚动时,虚线矩形的垂直部分显示为实线、连续线。更快地移动鼠标会导致实体部分越来越少。奇怪的是,水平线没有表现出这种行为并按预期显示。

到目前为止,两个非最佳解决方案是在和期间设置ResizeRedraw = true或调用。我当然想避免这种情况,因为我真正绘制的内容更复杂,而且这些缓慢的调用会破坏流畅的体验。我也尝试过仅使新显示的区域无效,但无济于事 - 只有完整的 Invalidate 似乎有效。Invalidate()OnResize()OnScroll()

关于如何解决这个问题的任何指示?

演示代码: