海龟绘图两小时上手C语言 - 3 正方形螺旋线

整个教程的介绍和目录在这里:

童晶:海龟绘图两小时上手C语言 - 0 引言

3.1 绘制正方形螺旋线

输入并运行以下代码,在窗口中绘制了正方形螺旋线:

#include <turtle.h>int main()
{int i;initWorld(800,600);setSpeed(1000);for (i=1;i<=100;i=i+1){forward(i);rightTurn(90);    }pause();return 0;
} 

其中setSpeed(1000);用于设置绘制的速度,括号内的数值越大,绘制速度越快。

为了便于说明,将螺旋线中心放大,如下图所示:

小海龟从画面中心出发,前进的距离i逐渐增加,每次forward(i)后向右旋转90度。如此重复运行,即得到了如图所示的正方形螺旋线。

修改for语句中循环变量的起始值、终止值、步长,可以绘制出下图所示的中空螺旋线:

#include <turtle.h>int main()
{int i;initWorld(800,600);setSpeed(5000);for (i=50;i<=300;i=i+3){forward(i);rightTurn(90);   }pause();return 0;
} 

3.2 旋转的正方形螺旋线

上节代码中右转角度为90度,可以得到规范的正方形螺旋。将旋转角度设为91度,每次向右多旋转1度,就可以形成类似旋转楼梯的螺旋线,如下图所示。

#include <turtle.h>int main()
{int i;initWorld(800,600);setSpeed(5000);for (i=0;i<=300;i=i+3){forward(i);rightTurn(91);    }pause();return 0;
} 

设定另一组参数,绘制出了下图中的效果。

#include <turtle.h>int main()
{int i;initWorld(800,600);setSpeed(5000);for (i=100;i<=300;i=i+2){forward(i);rightTurn(93);  }pause();return 0;
} 

读者也可以尝试设定其它参数,得到更加酷炫的螺旋曲线。

3.3 小数

C语言除了可以处理整数,也可以处理小数(也称为浮点数)。rightTurn()中的旋转角度设定为小数,绘制效果如下图所示。

#include <turtle.h>int main()
{int i;initWorld(800,600);setSpeed(5000);for (i=1;i<=300;i=i+3){forward(i);rightTurn(90.3);  }pause();return 0;
} 

和整数类似,小数也可以存储在变量中:

#include <turtle.h>int main()
{int i;initWorld(800,600);setSpeed(5000);float angle;angle = 90.3;for (i=1;i<=300;i=i+3){forward(i);rightTurn(angle);    }pause();return 0;
} 

浮点型的关键词为float,第8行代码float angle;定义了一个浮点型的变量angle。C语言中的小数自动认为是浮点型常量,并可以赋值给浮点型变量。

3.4 小结

将旋转角度稍微偏离90度,即可以绘制出各种美丽的旋转螺旋线。进一步学习了小数的用法,可以进行更加精细的角度设定。

这个系列教程可以直接转载,但希望能标明作者和出处。如果对趣味学编程感兴趣的读者,也可以关注我在知乎上的教程,或者参考我写的几本图书:

海龟绘图两小时上手C语言 - 3 正方形螺旋线相关推荐

  1. 海龟绘图两小时上手C语言 - 4 任意螺旋线

    海龟绘图两小时上手C语言 - 4 任意螺旋线 整个教程的介绍和目录在这里: 童晶:海龟绘图两小时上手C语言 - 0 引言 4.1 计算正多边形的角度 数值之间也可以进行加.减.乘.除.取余运算,在代码 ...

  2. 海龟绘图两小时上手C语言 - 5 彩色螺旋线

    海龟绘图两小时上手C语言 - 5 彩色螺旋线 整个教程的目录: 童晶:海龟绘图两小时上手C语言 - 0 引言 童晶:海龟绘图两小时上手C语言 - 1 绘制直线 童晶:海龟绘图两小时上手C语言 - 2 ...

  3. 海龟绘图两小时上手C语言 - 2 绘制正方形

    海龟绘图两小时上手C语言 - 2 绘制正方形 整个教程的介绍和目录在这里: 童晶:海龟绘图两小时上手C语言 - 0 引言 2.1 向右旋转 除了让小海龟前进外,也可以让它旋转.输入并运行以下代码: # ...

  4. 海龟绘图两小时上手C语言 - 1 绘制直线

    海龟绘图两小时上手C语言 - 1 绘制直线 整个教程的介绍和目录在这里: 童晶:海龟绘图两小时上手C语言 - 0 引言 1.1 什么是C语言? 如今,我们的生活已经离不开程序.比如用计算机写文章.做P ...

  5. 海龟绘图两小时上手C语言 - 0 引言

    海龟绘图两小时上手C语言 0 引言 作为一名教了十几年编程的大学老师,看过不少学生一开始学习C语言,就被其复杂的语法.枯燥的数学应用案例给吓住了. 在此提供一个很简单的教程,希望零基础的读者花上两个小 ...

  6. python语言绘制正方形螺旋线

    先上成品图 代码: import turtle as t t.speed(5) t.pencolor("purple") for i in range(128):t.fd(2*i) ...

  7. Python基础学习笔记——用海龟绘图实现两两相连

    学习目标: 使用海龟绘图.输入多个点,将这些点都两两相连. 代码: def connect_dot(*args):for i in range(len(args) - 1):for j in rang ...

  8. python海龟绘图圆形_python之海龟绘图

    1. 基本功能介绍 在海龟作图中,我们可以编写指令让一个虚拟的(想象中的)海龟在屏幕上来回移动.这个海龟带着一只钢笔,我们可以让海龟无论移动到哪都使用这只钢笔来绘制线条.通过编写代码,以各种很酷的模式 ...

  9. 2021天梯赛L1-074 两小时学完C语言 题解

    L1-074 两小时学完C语言 (5 分) 题目: 知乎上有个宝宝问:"两个小时内如何学完 C 语言?"当然,问的是"学完"并不是"学会". ...

最新文章

  1. 2019个嵌入式市场研究,持续的C/C++优势
  2. 企业信息化快速开发平台JeeSite
  3. 连接LilyPad之Linux平台的驱动
  4. hdu 6396 Swordsman (技巧)
  5. STL库中string类内存布局的探究
  6. k8s中流量分离以及资源隔离实战
  7. 【LCT】历史(P4338)
  8. facelets_不要在facelets中重复表情
  9. 这款能够生成文档的接口测试软件,为什么越来越受欢迎?
  10. TripMode 管理 App 网络数据使用情况
  11. 把Alexa工具条改装成木马
  12. 完美数及寻找完美数的算法(Perfect number‘s algorithm)
  13. 移动叔叔MTK6589一键ROOT工具v3.0+by+罗微
  14. Request method XXX not supported
  15. 基于SpringBoot+Bootstrap【爱码个人博客系统】附源码
  16. 道可道,非常道 ---8个做事之“理”
  17. 教育培训行业使用CRM管理系统有什么好处
  18. 手把手教你如何用python制作自动翻译程序
  19. Unexpected Exception caught setting '' on 'class com.: Error setting expression '' with value ['', ]
  20. excel表格末尾添加一行_Excel制表,办公用品申请单(表),方法简单,一起来学习...

热门文章

  1. 自动驾驶——多传感器融合的学习笔记
  2. Android模拟器——Windows上比较适合王者荣耀的是腾讯手游助手
  3. VsCode crtl + 鼠标右键 python代码无法跳转
  4. java中的枚举类型
  5. 项目之爬虫入门(豆瓣TOP250)
  6. CLRS10.1-6练习 - 用双栈实现队列
  7. 南阳oj a+b问题
  8. jquery 常见选择器以及一些方法
  9. MySQL配置文件简单解析
  10. 利用Python K-means实现简单图像聚类