画笔冲压算法/技术
|
我正在玩一个小的油漆应用程序。我想创建不同的“笔刷”提示(不仅是简单的线条)。基本思想是沿鼠标移动重复(标记)笔刷笔尖。因为鼠标移动不会为鼠标移动的每个像素调度所需的事件。
我当前的方法是使用Bresenham算法对要绘制的像素进行着色,然后在每个像素上标记画笔笔尖。但是,这不是很有效,因为画笔笔尖的大小例如为30x30像素。我想以笔刷宽度的25%进行印章,但是我不知道这是怎么做的。我可以检测到该距离,并且只有在达到25%的笔尖距离之前才盖章。
还有其他想法如何实现考虑不规则鼠标事件并允许定义间距的冲压画笔算法吗?
谢谢阅读!
没有找到相关结果
已邀请:
2 个回复
完趣镐
用于将其与上一个dib对齐。 先前加上
的位置将获得dib的位置。 在我们绘制它们之后,所有重要的部分都会出现。
剩余(remn)是从前一个过程收集的,该过程与初始阶段的dist(距离)相加。 为了理解数学,让我们举个例子。 画笔= 30x30,步长= 25%,残差= 2.5,距离= 28.5(含残渣),间距= 7.5(30 * 25/100) 下一个remn = 28.5(dist)-27.5(5次初始+ 7.5 * 3次,因为更新iter之后检查(<28.5-2.5)完成)+7.5(space)-2.5(上一个remn)= 6像素 因此,由于已经移动了6个像素,因此鼠标必须为下一个dib移动1.5像素。 在其他情况下,它甚至更简单。 dist(已经添加了remn)未通过remn = dist。 例如,如果我们从上次起有2个像素,我们将鼠标移动的距离加上3个像素,那么下一个dib需要再移动2.5个像素。
悸翠疮武昏