偶然间发现了一个图形感觉挺有意思的!写个Demo计算图形坐标!

小编半路入行两年了,利用闲暇时间利用写的求阿基米德螺旋线点的坐标,欢迎各位的大神批评指正!
index 点的下标
step 步长相邻两个点的间隔(根据自己的画布选择,小编这里取60px)
x,y 原点的坐标
direction 方向(4个方向一个方向两种 共8种)
下左上 下右上
左上右 右上左
上右下 上左下
右下左 左下右

POINT FindNextPosByAHMDSpiral(int index, int step = 50, int x = 0, int y = 0,int direction = 0)//默认方向 下左上
{POINT nextPos,lastPos;if(index < 1){//第一个点默认原点nextPos.x = x,nextPos.y = y;}else{lastPos.x = x,lastPos.y = y;//最后一个点的坐标int count = 1;//找第几个点while(count <= index){if(count != 1){lastPos.x = nextPos.x;lastPos.y = nextPos.y;}int sum = 1;int n = 0;while(count > sum){sum += n + 1;n++;}int nextDir = n % 4;// 0:左下 1:左上 2:右上 3:右下if(direction < 4)//顺时针4种{nextDir += direction;}else if (direction < 8)//逆时针的4种{int d = direction - 4;nextDir = abs(nextDir - 3); //取相反值nextDir += d;}nextDir = nextDir >= 4 ? nextDir - 4 : nextDir;switch(nextDir){case 0:{nextPos.x = lastPos.x - step / 2;nextPos.y = lastPos.y + step / 2;break;}case 1:{nextPos.x = lastPos.x - step / 2;nextPos.y = lastPos.y - step / 2;break;}case 2:{nextPos.x = lastPos.x + step / 2;nextPos.y = lastPos.y - step / 2;break;}case 3:{nextPos.x = lastPos.x + step / 2;nextPos.y = lastPos.y + step / 2;break;}}count++;}}return nextPos;
}

然后调用即可求出下个点的坐标。

POINT nextPos = FindNextPosByAHMDSpiral(index, 60, 512, 384, type);

下面是两张同一方向的两种图:

第二篇 阿基米德螺旋线 小Demo 简单 易懂 实现 vc++8.0相关推荐

  1. 以Arduino编写伺服插补控制及C#上位机的阿基米德螺旋线检测

    以Arduino编写伺服插补控制及C#上位机的阿基米德螺旋线检测 阿基米德螺旋线 阿基米德螺旋线的特性及应用 阿基米德螺旋线的检测原理 检测仪总体结构 上位机 控制器 伺服驱动及电机 测头及机械 检测 ...

  2. C语言黑科技:阿基米德螺旋线。新奇,趣味,高级~

    程序简介 最初是想用阿基米德螺旋线实现可视化 π,于是学习了泰勒展开计算 π 的过程,同理举一反三实现了计算 e 的过程,学习了画阿基米德螺旋线.后来又实现了一种"走路的直线",来 ...

  3. 【Unity】绘制阿基米德螺旋线

    阿基米德螺线定义: 阿基米德螺旋线公式: 极坐标方程为: r = a + bθ 平面笛卡尔坐标方程式为: x = (a + bθ)cos(θ), y = (a + bθ)sin(θ) a: 当θ=0° ...

  4. 阿基米德螺旋线如何等距取点?

    注,程序中的a,b并不对应公式,有空再改~ 极坐标下: 如果想要等距取点我们首先想到螺旋线的长度公式,求出长度与的关系即可等距取点. 计算过程可见知乎<ρ=a+bθ阿基米德螺线弧长怎么计算?&g ...

  5. hfss螺旋平面_HFSS——平面正弦加载阿基米德螺旋线模型设计

    这学期开始进入HFSS的学习,这是软件应该是电磁相关专业必须掌握的软件之一.前几天图老师发布第一个模型设计任务,是关于平面正弦加载阿基米德螺旋线,拿到具体要求后,就去网上找资料,发现有关HFSS的资料 ...

  6. 圆周运动、一般曲线运动、阿基米德螺旋线

    恒长旋转向量的导数 一个恒长旋转向量求导后得到的向量的方向与原向量相比,逆时针旋转了 90∘90^\circ90∘ ,而求导后得到的向量的长度与旋转角速度有关. 证明 例如 a⃗=(cosθ,sinθ ...

  7. AutoCAD 二次开发 AutoLISP画图 题目:和的平方、极坐标四叶曲线、阿基米德螺旋线

    我的GIS/CS学习笔记:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes <一个浙江大学本科生的计算机.地理信息科学知识库 > 写入下列 ...

  8. Unity 中 阿基米德螺旋线 简易画法

    阿基米德螺旋线是螺旋线的一种,具体什么样请百度谷歌之. 据说阿基米德螺旋线最方便的是使用极坐标表示,公式为 .那么我们为了在unity中绘制这个螺旋线就必须把极坐标转换为笛卡尔坐标. 可能会问怎么在u ...

  9. Matlab:绘制阿基米德螺旋线结构

    本文基于阿基米德螺旋线的基本理论,用Matlab实现阿基米德螺旋线的绘制仿真. Project Code 基本概念:旋向,起始半径r0,螺距P 极坐标图下: % 作者:ZQJ % 日期:2021.1. ...

最新文章

  1. java飞机大战流程图_JAVA课程设计-飞机大战
  2. IBASE change related BDOC generation
  3. equals()方法
  4. Toast.makeText(MainActivity.this, R.string.alert, Toast.LENGTH_SHORT).show(); 解释
  5. 记忆网络之在对话系统中的应用
  6. 开VM虚拟机导致内存和磁盘利用率高
  7. 电子信息工程求职目标_广东海洋大学电子与信息工程学院电子信息工程专业欢迎你...
  8. 如何做好产品路标规划?这篇文章告诉你答案
  9. 使用GPG实现密码学应用
  10. 解决tomcat中文乱码问题的方案
  11. Apache ShenYu 快速开始
  12. 微信公众平台中业务域名,JS接口安全域名,网页授权域名配置的MP_verify_liCemlZVM1G3rJPy.txt文件放置位置
  13. OO ALV中的data_changed、data_changed_finished事件介绍
  14. 外呼防封系统源码提供
  15. python画三维折线图_使用Python的matplotlib画折线图,柱状图,三维图
  16. Visual Studio 2008 项目安装和部署
  17. 核范数与规则项参数选择
  18. ✨数织游戏✨:Python 制作的成本一毛钱却诚意满满的小礼物!!
  19. Charles-解决unknown的问题
  20. Kubernetes入门篇(三)——Kubernetes的对象和API

热门文章

  1. 新中国成立以来的21次暴富机会
  2. 二维数组a的数组名a,a[0],a,a[0]的联系,和指针的关系
  3. 取消管理员取得所有权_管理员所有权,教您win10怎么获得管理员所有权
  4. NGINX 配置本地HTTPS(双向认证)
  5. 12.VC(ui)-AlphaBlend参数BLENDFUNCTION
  6. 基于php+mysql的菜品食谱美食网
  7. createcompatibledc(createcompatibledc 刷新不闪屏)
  8. EasyClick IOS 自动化测试问题处理
  9. 多变量微积分笔记9——极坐标下的二重积分
  10. [微积分] 利用极坐标计算二重积分