之前有试过DrawCurve方法,但是它好像是根据几个关键点画图,鼠标拖动获得的应该是一系列连续的点吧,这个需要怎样实现呢?
求各位大神帮忙啦~
8 个解决方案
#1
GDI+有个DrawLines函数,将一系统的点用直线连接绘制起来
#2
将数组保存的点用直线连接绘制起来
#3
我觉得可以这样来实现:设定一个定时器,每隔一定的时间间隔触发一次(可以自己设定,比如100ms),触发时获得鼠标光标的位置坐标,然后将这个坐标保存到一个数组里面,完了之后,每次取出数组里面相邻的两个点,画直线就行了。理论上而言,只要你的这个时间间隔足够小,画出来的应该是平滑的曲线。
#4
不用GDI+都可以画曲线,何况是GDI+
MouseMove里画
MouseMove里画
#5
好的~谢谢大家,我去试一试~
#6
鼠标移动事件中,获得的点是系列离散的点,鼠标移动越快,离散程度也大,使用LineTo方法即可获得基本正确的鼠标规矩
#7
其实你只要把点和点的距离弄的很近了,就基本是已经模仿鼠标轨迹了
#8
谢谢大家的回答,最后是使用GDI+自带的DrawPath函数完成的,在MouseMove里面获取鼠标移动的点并存入数组,然后调用DrawPath,谢谢大家啦!
#1
GDI+有个DrawLines函数,将一系统的点用直线连接绘制起来
#2
将数组保存的点用直线连接绘制起来
#3
我觉得可以这样来实现:设定一个定时器,每隔一定的时间间隔触发一次(可以自己设定,比如100ms),触发时获得鼠标光标的位置坐标,然后将这个坐标保存到一个数组里面,完了之后,每次取出数组里面相邻的两个点,画直线就行了。理论上而言,只要你的这个时间间隔足够小,画出来的应该是平滑的曲线。
#4
不用GDI+都可以画曲线,何况是GDI+
MouseMove里画
MouseMove里画
#5
好的~谢谢大家,我去试一试~
#6
鼠标移动事件中,获得的点是系列离散的点,鼠标移动越快,离散程度也大,使用LineTo方法即可获得基本正确的鼠标规矩
#7
其实你只要把点和点的距离弄的很近了,就基本是已经模仿鼠标轨迹了
#8
谢谢大家的回答,最后是使用GDI+自带的DrawPath函数完成的,在MouseMove里面获取鼠标移动的点并存入数组,然后调用DrawPath,谢谢大家啦!