现在有两个问题,望大侠指点一下。
一:贝塞尔曲线拖动曲线上任意一点时,怎么保证曲线始终通过鼠标点。
二:像coreldraw,photoshop中,双击贝塞尔曲线上任意一点就可以在鼠标点击位置生成一个控制点。这个又是怎么实现的。
因本人没积分了。所以没办法给各位积分,望谅解。愿意帮忙的话,小弟万分感谢。
10 个解决方案
#1
我实现过一个跟photoshop一样的~
#2
dizuo:
能提供一些思路吗?
能提供一些思路吗?
#3
把鼠标坐标当成其中一个control point不就行了?
#4
楼主意思是随便点曲线上的点都切成两段贝塞尔曲线,并且形状保持一样?
#5
To:buluori
恩。是这么个意思。应该采用什么方法呢
恩。是这么个意思。应该采用什么方法呢
#6
http://blog.csdn.net/dizuo/archive/2009/10/26/4728785.aspx
我的一篇文章,有代码的。你可以看一下~
#7
通过点到曲线上的点算出U值来,然后 使用 贝塞尔曲线 的矩阵形式,可以 用 tu代掉公式里的U值,化解出切分后两个曲线的的线性代数公式(逆矩阵的使用是关键),把t用 1/U的值带入就能算出切分后两段贝塞尔曲线新的控制点坐标
#8
TO:buluori
你好。请问你说的U值和tu分别是什么。我在贝塞尔的矩阵形式里并没看到U这个参数。
望指教。
你好。请问你说的U值和tu分别是什么。我在贝塞尔的矩阵形式里并没看到U这个参数。
望指教。
#9
贝塞尔的矩阵形式的公式 是[u^3 u^2 u 1] * 常数 = p||, 有些文章里面可能是 t 吧 , 1>=u>=0
击中的点算得的 u值设为 m的话,要上面的公式成立, 则 u = t/m, 因为新的curve公式 t=m时即u = 1,最后一点, 带入
[ t/m^ 3 t/m^2 t/m 1] * 常数 = p|| 要为curve公式的话 需要转换成 [t^3 t^2 t 1] * ? * 常数 = p||,
?要移到右边去,得到右边的即为新的控制点,后段的曲线同理 m = 1-m而已
不知道我这么说你能理解不
击中的点算得的 u值设为 m的话,要上面的公式成立, 则 u = t/m, 因为新的curve公式 t=m时即u = 1,最后一点, 带入
[ t/m^ 3 t/m^2 t/m 1] * 常数 = p|| 要为curve公式的话 需要转换成 [t^3 t^2 t 1] * ? * 常数 = p||,
?要移到右边去,得到右边的即为新的控制点,后段的曲线同理 m = 1-m而已
不知道我这么说你能理解不
#10
Ok,多谢各位大侠的无私帮助。结贴。
#1
我实现过一个跟photoshop一样的~
#2
dizuo:
能提供一些思路吗?
能提供一些思路吗?
#3
把鼠标坐标当成其中一个control point不就行了?
#4
楼主意思是随便点曲线上的点都切成两段贝塞尔曲线,并且形状保持一样?
#5
To:buluori
恩。是这么个意思。应该采用什么方法呢
恩。是这么个意思。应该采用什么方法呢
#6
http://blog.csdn.net/dizuo/archive/2009/10/26/4728785.aspx
我的一篇文章,有代码的。你可以看一下~
#7
通过点到曲线上的点算出U值来,然后 使用 贝塞尔曲线 的矩阵形式,可以 用 tu代掉公式里的U值,化解出切分后两个曲线的的线性代数公式(逆矩阵的使用是关键),把t用 1/U的值带入就能算出切分后两段贝塞尔曲线新的控制点坐标
#8
TO:buluori
你好。请问你说的U值和tu分别是什么。我在贝塞尔的矩阵形式里并没看到U这个参数。
望指教。
你好。请问你说的U值和tu分别是什么。我在贝塞尔的矩阵形式里并没看到U这个参数。
望指教。
#9
贝塞尔的矩阵形式的公式 是[u^3 u^2 u 1] * 常数 = p||, 有些文章里面可能是 t 吧 , 1>=u>=0
击中的点算得的 u值设为 m的话,要上面的公式成立, 则 u = t/m, 因为新的curve公式 t=m时即u = 1,最后一点, 带入
[ t/m^ 3 t/m^2 t/m 1] * 常数 = p|| 要为curve公式的话 需要转换成 [t^3 t^2 t 1] * ? * 常数 = p||,
?要移到右边去,得到右边的即为新的控制点,后段的曲线同理 m = 1-m而已
不知道我这么说你能理解不
击中的点算得的 u值设为 m的话,要上面的公式成立, 则 u = t/m, 因为新的curve公式 t=m时即u = 1,最后一点, 带入
[ t/m^ 3 t/m^2 t/m 1] * 常数 = p|| 要为curve公式的话 需要转换成 [t^3 t^2 t 1] * ? * 常数 = p||,
?要移到右边去,得到右边的即为新的控制点,后段的曲线同理 m = 1-m而已
不知道我这么说你能理解不
#10
Ok,多谢各位大侠的无私帮助。结贴。