作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果您使用 Gimp 或 Photoshop 等图形编辑程序,您就会明白我的意思。要在这些程序上编辑曲线(可能是贝塞尔曲线),我们可以单击曲线,拖动鼠标,曲线会相应改变。我怀疑这个机制背后的所有事情都与向量有关,但我找不到任何提到如何去做的文件。谁能告诉我我该怎么做?非常感谢。
[编辑] 我的意思是选择曲线本身来改变(编辑)它(点击曲线,然后拖动曲线来编辑它)。通常,我们选择控制点来改变曲线。我知道要更改曲线,我需要编辑控制点,但是如何将曲线上的更改解释为对控制点的更改?
最佳答案
有多种方法可以完成您所看到的内容,具体取决于您希望它的行为方式。我将解释一些通过曲线操作点修改贝塞尔曲线的更简单的方法。
首先要做的是找出用户单击曲线的参数值 (t)。这通常是一个近似值。如果您正在对贝塞尔曲线进行像素或子像素渲染,那么只需记录每个像素的 t 值并使用它。如果要分割为线段,请查看哪条线段最近,找到两个端点的 t 值,并根据沿线的距离计算 t 值。
获得 t 值后,您可以将其代入贝塞尔曲线方程。你最终会得到以下形式的东西:
P = k0*P0 + k1*P1 + k2*P2 + k3*P3
P0 := P0 + V
P0 := P0 + k0 * V
Pmax := Pmax + 1/kmax * V
关于edit - 拖动贝塞尔曲线进行编辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2316865/
我是一名优秀的程序员,十分优秀!