【Unity】绘制阿基米德螺旋线
阿基米德螺线定义:
阿基米德螺旋线公式:
- 极坐标方程为: r = a + bθ
- 平面笛卡尔坐标方程式为: x = (a + bθ)cos(θ), y = (a + bθ)sin(θ)
- a: 当θ=0°时的极径(mm)
- b: 阿基米德螺旋线系数(mm/°),表示每旋转1度时极径的增加/减小量
- θ: 极角,单位为度,表示阿基米德螺旋线转过的总度数(弧度)
- 改变参数a将改变螺线形状,b控制螺线间距离,通常其为常量
测试代码:
public class AchimedeanSpiral : MonoBehaviour
{//极坐标方程为: r = a + bθ//平面笛卡尔坐标方程式为: x = (a + bθ)cos(θ), y = (a + bθ)sin(θ)//a: 当θ=0°时的极径(mm)//b: 阿基米德螺旋线系数(mm/°),表示每旋转1度时极径的增加/减小量//θ: 极角,单位为度,表示阿基米德螺旋线转过的总度数(弧度)//改变参数a将改变螺线形状,b控制螺线间距离,通常其为常量//公式参数[SerializeField] float parameA = 1;[SerializeField] float parameB = 1;[SerializeField] float parameAngle = 2 * Mathf.PI;//Z值变化[SerializeField] float spiralHeightAdded = 0.5f;//取点间隔角度(弧度)[SerializeField] float intervalAngle = 0.1f;//保存取样点List<Vector3> spiralPointList = new List<Vector3>();//绘制曲线[SerializeField] LineRenderer lineRenderer;void Update(){if (Input.GetMouseButtonDown(1))DrawSpiral();}void DrawSpiral(){spiralPointList.Clear();//隔固定角度取样float drawAngle = 0;while (drawAngle <= parameAngle){spiralPointList.Add(GetPointByAngle(drawAngle));drawAngle += intervalAngle;}lineRenderer.positionCount = spiralPointList.Count;lineRenderer.SetPositions(spiralPointList.ToArray());}float tempX, tempY, tempZ;Vector3 GetPointByAngle(float angle){//公式计算坐标tempX = (parameA + parameB * angle) * Mathf.Cos(angle);tempY = (parameA + parameB * angle) * Mathf.Sin(angle);//Z值增量tempZ = spiralHeightAdded * angle;return new Vector3(tempX, tempY, tempZ);}}
绘制结果:
【Unity】绘制阿基米德螺旋线相关推荐
- Unity绘制阿基米德螺旋线
1.螺旋线参数方程 x = (α + βt) cos(t); y = (α + βt) sin(t); 2.使用LineRenderer绘制 using UnityEngine;public clas ...
- Unity 中 阿基米德螺旋线 简易画法
阿基米德螺旋线是螺旋线的一种,具体什么样请百度谷歌之. 据说阿基米德螺旋线最方便的是使用极坐标表示,公式为 .那么我们为了在unity中绘制这个螺旋线就必须把极坐标转换为笛卡尔坐标. 可能会问怎么在u ...
- Matlab:绘制阿基米德螺旋线结构
本文基于阿基米德螺旋线的基本理论,用Matlab实现阿基米德螺旋线的绘制仿真. Project Code 基本概念:旋向,起始半径r0,螺距P 极坐标图下: % 作者:ZQJ % 日期:2021.1. ...
- 使用Qt的QPainter绘制阿基米德螺旋线
把笔记 c++绘制极坐标曲线 的代码中的allegro换成Qt的了. 因为自定义的QWidget写在源文件中所以Q_OBJECT注释掉了. #include <QApplication> ...
- Altium Designer: 绘制阿基米德螺旋线(脚本法)
http://www.classnotes.cn/412.html 备份一下资源 链接:https://pan.baidu.com/s/1zhnfkqnYLsD066E3WKILYw 提取码:1wf ...
- AutoCAD 二次开发 AutoLISP画图 题目:和的平方、极坐标四叶曲线、阿基米德螺旋线
我的GIS/CS学习笔记:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes <一个浙江大学本科生的计算机.地理信息科学知识库 > 写入下列 ...
- 在unity向量空间内绘制几何(1):通过将极坐标转换为直角坐标,绘制阿基米德螺线,对数螺线与玫瑰线等几何图形
一些基础几何图形的极坐标公式 极坐标内的每个点都有两个参数: r, 与 θ\thetaθ.r为此点到极点(中心点)的距离,θ\thetaθ 为此点到极点的线段与极轴(类似x轴)的夹角. 很多几何图形公 ...
- C语言黑科技:阿基米德螺旋线。新奇,趣味,高级~
程序简介 最初是想用阿基米德螺旋线实现可视化 π,于是学习了泰勒展开计算 π 的过程,同理举一反三实现了计算 e 的过程,学习了画阿基米德螺旋线.后来又实现了一种"走路的直线",来 ...
- 以Arduino编写伺服插补控制及C#上位机的阿基米德螺旋线检测
以Arduino编写伺服插补控制及C#上位机的阿基米德螺旋线检测 阿基米德螺旋线 阿基米德螺旋线的特性及应用 阿基米德螺旋线的检测原理 检测仪总体结构 上位机 控制器 伺服驱动及电机 测头及机械 检测 ...
最新文章
- service数据保存_「数据架构」数据流程图与实例-客户服务系统
- window.event.returnValue=false
- 上网课的心得体会1000字_【家庭教育】家庭教育心得体会 ——济南市罗而小学家庭教育“好家风好家教”专栏(十一)...
- 浅谈格雷码(Grey Code)在信息学竞赛中的应用
- Java7并发编程指南——第二章:线程同步基础
- 广州专科计算机学校录取分数线,广州大专多少分能录取?高考分数170分能上广州大专?...
- java取linux本地xml,java-使用apache poi读取.xlsx文件会在Linux机器...
- excel宏教程_用Excel做个年会抽奖软件,老板惊呆了!
- IPython与IPython Notebook安装及使用
- 【apache lang3】import org.apache.commons.lang3.StringUtils error----Cannot resolve symbol ‘lang3‘
- python中import math用法_Python math.hypot() 方法
- 基于PHP+MySQL实现注册和登录功能
- 这年头能真正掌握Javaassist技术的程序员真不多
- Dreamweaver CS4 快捷键大全
- 公务员备考(四十) 图推提升
- 网络安全----密码学
- 电力系统的延时功率流 (CPF)的计算【 IEEE-14节点】(Matlab代码实现)
- weblogic安装过程报错指导
- 一文读懂责任分配矩阵,解决你80%的项目难题
- 陕西省中小学生专用计算机,关于同意陕西省转用全国中小学生学籍信息管理系统并给予技术支持的复函...
热门文章
- 日本“冷知识”你都知道吗?
- js利用offsetWidth和clientWidth来计算滚动条的宽度
- 什么是ChinaNet,ChinaNet介绍
- MongoDB 3.0 用户验证问题
- Nexus 5 LGhammerhead刷机(刷原厂系统镜像)
- Google Earth Engine(GEE)——利用插值方法解决影像去云后的空缺/填充/弥补方法详细讲解(拉萨区域为例)
- AI的发展:在金融行业的应用与机遇(附视频PPT)
- 章昌平:个人知识管理中的“武林外传”
- Java工程师面试题之SpringMVC(含答案)
- 程序员该如何管理后宫:怎样哄女孩儿(策略模式)