JavaScript 数学曲线—连锁螺线

JavaScript 数学曲线—连锁螺线引子继等角螺线 接着尝试连锁螺线 OriginMyGitH 简介在阿基米德螺线中提到的通用的公式 当 c 2 时 就是连锁螺线 又称为 Lituus 曲线 RogerCotes 在他的著作 HarmoniaMens 1722 中对该曲线进行了描述 Maclaurin 在 1722 年为曲线命名 在极坐标系中公式描述 公式说明 r 径向距离 a 常数 极角 绘制用 canvas 绘制曲线 canvas 的坐标系是笛卡尔坐标系 需

引子

继等角螺线,接着尝试连锁螺线。

  • Origin
  • My GitHub

简介

87-1

在 阿基米德螺线 中提到的通用的公式,当 c = -2 时,就是连锁螺线,又称为 Lituus 曲线。Roger Cotes 在他的著作 《Harmonia Mensurarum》(1722) 中对该曲线进行了描述。Maclaurin 在 1722 年为曲线命名。

在极坐标系中公式描述:

87-2

公式说明:

  • r :径向距离。
  • a :常数。
  • θ :极角。

绘制

用 canvas 绘制曲线,canvas 的坐标系是笛卡尔坐标系,需要做一个转换。

87-3

由上面的图可知取一个点有下面的数学转换关系:

x = rcos(θ) y = rsin(θ) θ = arctan(y/x) 

结合极坐标系公式可得:

87-4

这是示例,绘制主要逻辑代码:

function draw() { 
    let a = 100, angle = 0.1; let x = 0, y = 0, points = []; const acceleration = 0.1, circleNum = 20; while (angle <= circleNum * 2 * Math.PI) { 
    const angleSqrt = Math.sqrt(angle); x = (a / angleSqrt) * Math.cos(angle); y = (a / angleSqrt) * Math.sin(angle); points.push([x, y]); angle = angle + acceleration; } // 实现把点绘制成线的方法 line({ 
    points: points}); } 

参考资料

  • Lituus Wiki
  • Lituus Wolfram MathWorld
  • Lituus Plane Curves
  • Lituus
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/199597.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 下午12:39
下一篇 2026年3月20日 下午12:39


相关推荐

  • SpringBoot实现文件上传接口[通俗易懂]

    SpringBoot实现文件上传接口[通俗易懂]摘要公司都是采用SpringBoot作为项目框架,其实SpringBoot和SSM框架很接近,基本上只是将SSM的一些配置项修改为自动配置或者简单的注解配置就可以了,建议不了解的SpringBoot的朋友们可以了解一下,上手很快,其实文件上传框架根本没有多大关系。我只是顺便帮SpringBoot打个广告罢了。正题需求:需要实现一个文件上传的web接口。1、先实现一个Controll…

    2022年6月12日
    59
  • php中的线程、进程和并发区别

    php中的线程、进程和并发区别

    2021年10月31日
    64
  • mysql的乐观锁使用_java悲观锁乐观锁定义

    mysql的乐观锁使用_java悲观锁乐观锁定义正确的理解MySQL的乐观锁,悲观锁与MVCC!首先声明,MySQL的测试环境是5.7前提概念数据库并发的三种场景乐观锁和悲观锁的澄清悲观锁乐观锁MVCC多版本并发控制总结乐观锁和悲观锁的抉择OCC,PCC,MVCC参考资料前提概念数据库并发的三种场景数据库并发场景有三种,分别为:读-读:不存在任何问题,也不需要并发控制读-写:有隔离性问题,…

    2022年8月30日
    5
  • 好用的vue富文本编辑器记录[通俗易懂]

    好用的vue富文本编辑器记录[通俗易懂]vue-quill-editorhttps://github.com/surmon-china/vue-quill-editorhttps://www.npmjs.com/package/vue-quill-editorhttps://blog.csdn.net/nickroprak/article/details/86645519(自定义图片上传)*默认上传图片为base64编吗…

    2022年10月14日
    5
  • C语言练习之计算存款利息

    C语言练习之计算存款利息计算存款利息 有 1000 元 想存一年 有三种方法可选择 1 活期 年利率为 r1 2 一年期定期 年利率为 r2 3 存两次半年定期 年利率为 r3 请分别计算出一年后按 3 种方法所得到的本息和

    2026年2月12日
    2
  • 复试的时候面试官问我还有什么问题(和面试官聊得很好但没有录用)

    我是一名程序员,我的主要编程语言是Java,我更是一名Web开发人员,所以我必须要了解HTTP,所以本篇文章就来带你从HTTP入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得05年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学xxx家里有网,每…

    2022年4月17日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号