07 | 如何用向量和参数方程描述曲线?
该思维导图由 AI 生成,仅供参考
如何用向量描述曲线?
- 深入了解
- 翻译
- 解释
- 总结
本文介绍了如何用向量和参数方程描述曲线的方法,以及它们的优缺点和适用范围。通过向量描述曲线可以绘制各种多边形,但在描述其他曲线如椭圆、抛物线等时存在局限性。作者还介绍了用参数方程描述曲线的方法,以圆、椭圆和抛物线为例,给出了相应的参数方程和绘制函数的代码示例。通过参数方程,不仅可以描述常见的曲线,还能描述更一般性的曲线,如贝塞尔曲线和Catmull–Rom曲线。文章通过代码示例和图形展示,生动地展示了向量和参数方程描述曲线的方法。此外,还介绍了如何利用函数式的编程思想封装一个简单的JavaScript参数方程绘图模块,以绘制出不同的曲线。最后,详细讲解了二阶和三阶贝塞尔曲线的参数方程和绘制方法,强调了贝塞尔曲线在可视化和计算机图形学中的重要性。整体而言,本文通过丰富的代码示例和图形展示,使读者能够快速了解如何用向量和参数方程描述曲线,以及它们的优缺点和适用范围。
《跟月影学可视化》,新⼈⾸单¥68
全部留言(17)
- 最新
- 精选
- Geek_13e8db这篇教程写得很好,感谢月影老师!这里提一个小建议:附件的snippet中,参数的定义对于初学者而言,需要花较长时间才能理解。老师能否在fn parametric()里面加上更多的comment,或者起一些更具体的变量名。多谢。 当然,当前这么写,让我不得不花很多时间来理解每行代码,客观上加强了学习效果。
作者回复: 嗯嗯,parametric这块实现用了过程抽象思想,它是函数式编程的基础,我会用一篇加餐来专门介绍这种编程思想
2020-07-0658 - 不见飞刀老师能不能解释一下const t = start * (1 - p) + end * p; 这段代码里的t的意义是什么,为什么要这么算
作者回复: 这是线性插值,t是当前时间的值
2020-08-2432 - I keep my ideals💤const segments = Math.round(TAU_SEGMENTS * ang / TAU)不太理解这一步的含义 希望老师能够帮我解除一下疑惑
作者回复: 就是整圆的线段数乘以弧度与2pi的比值得到圆弧的线段数
2020-10-1021 - 量子蔷薇请问老师,圆和椭圆的参数方程使用弧度值作为参数,所以即使只看方程也能想象出曲线的样子,但是其他曲线比如圆锥曲线的 start 和 end 不能理解起到了什么作用,只能凭感觉画出来后再改参数慢慢微调,如何选择 start 和 end 的值,这里面有什么技巧吗?
作者回复: 这个需要慢慢练习就有感觉了
2020-08-041 - 廖熊猫感谢月影老师的讲解。贝塞尔曲线接触的时间也挺长了,但是总是感觉不得要领,曲线的公式都是死记硬背出来的,也很难想象出来对应控制点绘制出来的曲线的大概样子,其实对于很多类似贝塞尔曲线的参数绘制曲线都是这样子,希望可以了解下对于这些曲线,老师平时都是怎么记忆还有想象大概的绘制形状的?
作者回复: 其实理解贝塞尔曲线的原理就大致能知道贝塞尔曲线的样子。不过如果需要精确的控制,还是应该用一些画贝塞尔曲线的工具,这类工具不少,你可以在github上搜一下,输入简单的参数就可以将图形画出来。
2020-07-061 - Ray老师,我想问一下,抛物线里const t = min * (1 - s) + max * s;是怎么理解的,t不应该是正弦的倒数x/y吗?
作者回复: 参数方程啊,抛物线是二次曲线。
2021-09-02 - 秋谷老师,那个正多边形的里面的const delta = Math.PI * (1 - (edges - 2) / edges),这个是求每个角的大小的吗,是内角和 / edges的意思吗,没有看懂
作者回复: 内角大小公式
2020-11-196 - I keep my ideals💤// 抛物线参数方程 const para = parametric( t => 25 * t, t => 25 * t ** 2, ); // 绘制抛物线 para(-5.5, 5.5).draw(ctx); 想请教老师 这里调用抛物线方程 para函数里面的-5.5 和5.5的值代表什么呢 好像并不是点的坐标
作者回复: 代表绘制的坐标范围
2020-10-15 - 不见飞刀抛物线方程里的t是什么意思
作者回复: 参数方程里的参数
2020-08-24 - 不见飞刀抛物线函数那些参数是什么意思
作者回复: 抛物线的参数方程是x轴线性方程,y轴二次方程,根据物理意义就可以知道,水平方向匀速,垂直方向匀加速就是抛物线
2020-08-24