Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我将如何在具有压力敏感性的绘图程序中进行绘图?_C#_Winforms_Drawing_Tablet_System.drawing - Fatal编程技术网

C# 我将如何在具有压力敏感性的绘图程序中进行绘图?

C# 我将如何在具有压力敏感性的绘图程序中进行绘图?,c#,winforms,drawing,tablet,system.drawing,C#,Winforms,Drawing,Tablet,System.drawing,我正在用C#.Net/WinForms编写一个画图程序,压力敏感性是必须的。我已经做好了一切准备,正在从平板电脑笔获取压力信息。这些都不是问题 我遇到的问题是,我将如何使用您典型的简单绘制程序(即“Scribble”)并使用我获得的压力数据进行绘制?Scribble类型的简单应用程序在启用绘图时跟踪当前和以前的光标位置,并在它们之间绘制线条。但通过捕捉光标位置而设置的每个点都是使用固定宽度的线绘制的 假设我有所有需要的数据:x y位置和笔压,我如何开始考虑在不同宽度的点之间绘制?我会将整个xy位

我正在用C#.Net/WinForms编写一个画图程序,压力敏感性是必须的。我已经做好了一切准备,正在从平板电脑笔获取压力信息。这些都不是问题

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


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

我会将整个xy位置分解为许多更小的xy位置(可能是一个像素或两个像素的长度)并根据笔压相应地应用宽度。

最简单的方法是跟踪上一个点和上一个大小(基于压力),然后使用上一个大小作为线条大小,从上一个点到当前点绘制线条

如果您确保不在事件处理程序代码中创建新对象,那么即使使用GDI+也会以这种方式快速运行


我提到的另一种方法更先进(尽管可能会产生更好的结果),我可能会在以后的某个时候实现它,当我做所有基于向量的事情时。

如果我理解正确,那将是对GDI+例程的大量调用,这将大大降低速度。我考虑计算点之间的角度,然后将这些角度平分,在主点的两侧设置一个点,距离与压力相对应,然后使用前一个点的两个边点和当前点的两个边点绘制多边形。我想这可能涉及递归。是的,我的建议可能会导致很多这样的调用。说得好,这不是卡梅隆·切赫的建议吗?做出与他的答案相同的答案并将其标记为答案似乎有点粗鲁。至少要给那个试图帮助你的人一个好名声,如果这就是他的意思,那不是我理解他的方式。