2013-03-01 37 views
0

我正在写一个各种绘画程序,使用C#.Net/WinForms和压力敏感度是必须的。我已经设置了一切,并从平板笔获取压力信息。这都不是问题。我会如何着手绘制具有压力敏感性的绘画程序?

我遇到的问题是,我将如何采用典型的简单绘图程序(即'Scribble')并使用我得到的压力数据进行绘制?涂鸦类型的简单应用跟踪当前和以前的光标位置,并启用绘图,并在它们之间绘制线条。但是捕捉光标位置的每个点在使用固定宽度线之间绘制。

假设我有我需要的所有数据:x位置和笔压力,我将如何开始考虑在应该是不同宽度的点之间绘图?

回答

0

最简单的方法是跟踪前一个点和前一个尺寸(基于压力),然后使用之前的尺寸绘制一条从前一点到当前点的线。

即使使用GDI +也是如此,如果您确保不在事件处理程序代码中创建新对象。

我提到的另一种方法是更先进的(虽然可能会产生更好的结果),并且我可能最终在以后的任何时候完成基于矢量的操作。

+0

Cameronjchurch建议的不是这个吗?似乎有点粗鲁,做出与他的答案相同的答案,并将其标记为答案。至少给试图帮助你的人声誉 – Alan 2013-03-11 04:52:38

+0

如果这就是他的意思,那不是我理解他的方式。 – OurManFlint 2013-03-11 06:19:27

0

我会打破你的总xy位置到许多较小的xy位置(可能是一个像素或两个长度)并相应地应用相应于笔压的宽度。

+0

如果我正确地理解了你,那将是对GDI +例程的很多调用,这会使事情减慢很多。 我想过计算点之间的角度,然后平分这些角度,并在主点两侧用对应于压力的距离设置一个点,然后使用前一点和两点的两个边点绘制多边形当前点的边点。这可能涉及递归,我猜。 – OurManFlint 2013-03-01 20:11:54

+0

是的,我的建议可能会使这些电话很多。好点子。 – cameronjchurch 2013-03-01 20:22:53