|
1
4
现场演示
我采取了解决办法 here 并修改了它。他们在你停止绘制后计算样条曲线。我修改了代码以便它立即绘制。您可能会看到样条曲线在绘制过程中发生了变化。对于实际应用程序,您可能需要两个画布-一个带有旧图形,另一个只带有当前图形,这将不断更改,直到鼠标停止。
|
|
|
2
2
http://freespace.virgin.net/hugo.elias/graphics/x_bezier.htm 但是,您必须将每个线段的绘制延迟到一帧之后,这样您就有了起点和终点,以及可用于计算的下一个和上一个点。 |
|
|
3
2
所以,正如我看到的问题锯齿边缘的写意曲线,当鼠标移动非常快,是没有解决的!!!在我看来,需要解决系统中mousemove事件的轮询频率问题,即使用不同的鼠标驱动程序或smf。。第二种方法是数学。。使用某种算法,在轮询出鼠标事件时,准确地弯曲两点之间的直线。。为了获得清晰的视图,您可以比较photoshop中的徒手画线和mspaint中的徒手画线。。谢谢各位……) |
|
|
4
1
我想你需要调查一下 Device Context
我知道这是C++,但是你说语言不相关,所以我希望它能帮助你。 我可以这样做:
这似乎比你的例子要流畅得多。 |
|
|
5
1
因此,平滑度来自鼠标移动事件的高频率。WxWidgets可以做到这一点,例如 related question 问题出在你的代码里,海因里希。也就是说,先画一个大位图,然后复制 到屏幕上可不便宜!为了估计你需要多大的效率,把你的问题比作电子游戏:每秒30个鼠标移动事件的平滑速率相当于每秒30帧。复制一个双缓冲区对于现代机器来说是没有问题的,但是WxHaskell很可能没有针对视频游戏进行过优化,所以出现一些抖动也就不足为奇了。 解决方案是只画尽可能多的必要的,即只是线,直接在屏幕上,例如如上面的链接所示。 |
|
6
1
我用Rocketmagnet提出的样条线思想做了一点实验。
这意味着我们落入第二个点,与直线插值的角度相同,但以与上一段相同的角度从一个起点开始,使边缘平滑。我们使用两个控制点距离的线段长度使折弯的大小与其比例相匹配。 下图显示了数据点很少的结果(以灰色表示)。
序列从左上方开始,中间结束。 这里仍然存在某种程度的不安,如果同时使用上一个点和下一个点来调整两个角度,这种不安可能会得到缓解,但这也意味着要比所得到的少画一个点。我发现这个结果已经令人满意了,所以我没有试。 |
|
|
FranticFronk · Tkinter单选按钮在已选择时执行命令 1 年前 |
|
|
Kumkuatte · 如何将UI元素对齐到Unity中的左侧位置 1 年前 |
|
|
Calax · GUI不显示所有组件(C++) 1 年前 |
|
|
trassert · python flet容器 2 年前 |
|
|
zadisk8 · 带有Q拆分器和多级选项卡的PyQt5 2 年前 |
|
|
Patrick Visi · Zitadel日常创建服务用户 2 年前 |