Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >乌龟爬爬:TurtleGraphics in R

乌龟爬爬:TurtleGraphics in R

作者头像
Y大宽
发布于 2019-01-28 09:24:34
发布于 2019-01-28 09:24:34
49500
代码可运行
举报
文章被收录于专栏:Y大宽Y大宽
运行总次数:0
代码可运行

但是,也挺好玩的。 越是简单的东西,越容易被忽略


安装并加载包

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
install.packages("TurtleGraphics")
library(TurtleGraphics)

1 现在用小乌龟爬出K字母-step by step

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
turtle_init(width = 100, height = 100)
turtle_lwd(lwd = 15)
turtle_col(col = "blue")
turtle_forward(distance = 40)
turtle_backward(distance = 20)
turtle_right(angle = 40)
turtle_lwd(lwd = 8)
turtle_forward(distance = 25)
turtle_right(angle = 180)
turtle_forward(distance = 25)
turtle_left(angle = 80)
turtle_forward(distance = 25)

K

turtle_init() By default its size is 100 by 100 units. You can easily change it by passing appropriate valuesto thewidthandheightarguments (e.g.turtle_init(width=200, height=200)).To define what happens if the Turtle moves outside the plot region, you can set themodeoption. The default value,"clip", means that the Turtle can freely go outside the board (but itwill not be seen). The"error"option does not let the Turtle out of the Terrarium – if the Turtletries to escape, an error is thrown. The third value,"cycle", makes the Turtle come out on the other side of the board if it tries to cross the border. 简单来说:这个函数设置乌龟的活动范围。默认乌龟出现在区域中间,头朝北(上) mode可以设置为clip,erro,cycle分别对应乌龟出界时候的反应,具体分别为 clip:可以出界,看不见它 erro:不允许乌龟出界,如果出去会有错误提示 cycle:如果出界就从另一面出现(穿越)

2 打包上面的动作,直接出图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
turtle_init()
turtle_do({
  turtle_init(width = 100, height = 100)
  turtle_lwd(lwd = 15)
  turtle_col(col = "blue")
  turtle_forward(distance = 40)
  turtle_backward(distance = 20)
  turtle_right(angle = 40)
  turtle_lwd(lwd = 8)
  turtle_forward(distance = 25)
  turtle_right(angle = 180)
  turtle_forward(distance = 25)
  turtle_left(angle = 80)
  turtle_forward(distance = 25)
})

和1一样,只是,省却了中间步骤

3 for loop:用循环让乌龟爬出圆形

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
turtle_init()
turtle_setpos(x=30, y=50)
turtle_lwd(lwd = 15)
turtle_col(col = "red")
turtle_do({
 for (i in 1:180) {
  turtle_forward(dist = 1)
  turtle_right(angle = 2)
 } 
})

circle

4设置条件:if语句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
turtle_init()
turtle_do({
  for (i in 1:5) {
    x <- runif(5)
    if (x>0.5){
    turtle_right(angle = 45)
    turtle_lwd(lwd = 2)
    turtle_col(col = "red")
  } else {
    turtle_left(angle = 45)
    turtle_lwd(lwd = 5)
    turtle_col(col = "blue")
  }
  turtle_forward(distance = 10)
  }
})

if

5 function(函数)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
turtle_init()
turtle_square <- function(r){
  for (i in 1:4) {
    turtle_forward(r)
    turtle_right(90)
  }
}
turtle_square(20)

image.png

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
turtle_init()
turtle_square(10)
turtle_right(180)
turtle_forward(20)
turtle_left(90)
turtle_square(10)
turtle_left(270)
turtle_square(10)
turtle_left(180)
turtle_forward(20)
turtle_left(90)
turtle_square(10)

image.png

6 随机线条

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set.seed(120)
n = 10
turtle_init(100, 100, mode = "cycle")
turtle_do({
  for (i in 1:n) {
    turtle_left(runif(1,0,360))
    turtle_forward(runif(1,0,1000))
  }
})

randome line

7 螺旋

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drawSpiral <- function(lineLen){
  if (lineLen > 0){
    turtle_forward(lineLen)
    turtle_right(50)
    drawSpiral(lineLen-5)
}
    invisible(NULL)
}
turtle_init(500,500,mode = "clip")
turtle_do({
  turtle_setpos(0,0)
  turtle_col("blue")
  drawSpiral(500)
  turtle_setpos(250,0)
  turtle_left(45)
  turtle_col("red")
  drawSpiral(354)
  turtle_setangle(0)
})

spiral

还有更多,看原文去吧

tree

sierpinski Triangle


8 其它

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
turtle_init()
turtle_col("blue")
n=150
for (i in 1:n) {
  turtle_forward(distance = 1+0.5*i)
  turtle_right(89.5)
}
turtle_hide()

image.png

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
turtle_init()
turtle_col("red")
turtle_right(angle=234)
for (i in 1:100) {
  turtle_forward(dist=0.9*i)
  turtle_right(angle=144.3)}

image.png

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
turtle_init()
turtle_col("hotpink")
turtle_setpos(50,35)
turtle_right(angle=60)
d=25
turtle_setpos(50-d/2,50-d/2*tan(pi/6))
for (i in 1:100) {
  turtle_forward(dist=d)
  d=d+0.5
  turtle_right(angle=120+1)}

image.png

----------------------------

快214了,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dat<- data.frame(t=seq(0, 2*pi, by=0.1) )
xhrt <- function(t) 16*sin(t)^3
yhrt <- function(t) 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t)
dat$y=yhrt(dat$t)
dat$x=xhrt(dat$t)
with(dat, plot(x,y, type="l"))
with(dat, polygon(x,y, col="firebrick3"))  
points(c(10,-10, -15, 15), c(-10, -10, 10, 10), pch=169,
       font=5, col = "pink",cex = 8)

heart

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.01.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
跟着Nature Plants学作图:R语言ggplot2画分组折线图并对坐标轴添加一些额外注释
https://www.nature.com/articles/s41477-022-01146-6#Sec44
用户7010445
2023/01/06
1.1K0
跟着Nature Plants学作图:R语言ggplot2画分组折线图并对坐标轴添加一些额外注释
手把手教你基于Python实现简单绘图
turtle库是Python语言中自带的一个用于绘制图像的函数库。turtle库为使用者提供一个或多个小乌龟作为画笔,使用者可通过turtle库提供的各种方法去控制小乌龟在一个平面直角坐标系中移动并绘制移动轨迹以画出想要的图案
一个风轻云淡
2024/01/03
5650
Python案例——喝墨水的小乌龟
(本文为前一篇文章《理解编程语言只需四个词-编程知识体系介绍(带python及scratch案例)》的说明案例之一)
一石匠人
2018/12/07
1.7K0
Python案例——喝墨水的小乌龟
Python-turtle库绘图
turtle(海龟)库是turtle绘图体系的Python实现,turtle库是一种标准库,是Python自带的。
wangmcn
2022/07/25
1.9K0
Python-turtle库绘图
python图形绘制库turtle中文开发文档及示例大全【最详细、连结果图都有,gif格式的!】
由于网上其它文档的形式不符合我个人习惯,在查阅资料时总感觉不是很习惯,就想着顺手写一篇博文作为一个参考示例。
1_bit
2020/10/23
2.9K0
python图形绘制库turtle中文开发文档及示例大全【最详细、连结果图都有,gif格式的!】
python中用turtle画一个圆形(pythonturtle教程)
最近发现一个很有意思的画图的python库,叫做turtle,这里先说下用turtle这个库来实现用正方形画圆的思路。
全栈程序员站长
2022/07/29
2.5K0
python库之–turtle,matplotlib,numpy,opencv,os,pillow
在学python之前,我总觉得这个东西很玄乎,而且认为网上传的很邪门:几行画出一个函数图,几十行做出一个人物形象,几十行写出一个小游戏。当时只觉得时夸大其词了。后来慢慢学习python,虽然知道了它可以用好多库,但也并没有觉得有什么。直到这次学长给我机会让我做一些东西,我才真正了解到它如何去使用,才真正发现它的乐趣,因此开启了新世界的大门,非常感谢学长!!!
十四君
2019/11/27
2.2K0
七夕最强Python表白代码来了
毫无疑问,玫瑰一直都是七夕、520......这类节日的专属,带文字的玫瑰花,文字可以根据节日自行更改。
Python小二
2023/09/11
2K0
七夕最强Python表白代码来了
Python 中 turtle 库的使用
Turtle 库是 Python 内置的图形化模块,属于标准库之一,位于 Python 安装目录的 lib 文件夹下,常用函数有以下几种:
村雨遥
2022/06/15
1K0
Python 中 turtle 库的使用
Python 海龟绘图:turtle库的使用
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 海龟绘图:turtle库的使用 ---- Python 海龟绘图:turtle库的使用 1.turtle简介 2.turtle基础知识 2.1 画布 2.2 画笔 2.2.1 画笔的状态 2.2.2 画笔的属性 2.2.3 绘图命令 2.2.3.1 画笔运动命令 2.2.3.2 画笔控制命令 2.2
小嗷犬
2022/11/15
3K0
Python 海龟绘图:turtle库的使用
Python有趣的小案例
来源:python ID:python6359 美国队长的锅 emmmmmmmm.......没错就是他的锅 代码 # 所需依赖:python3 pycharm # print 打印 print('hello world!') # 注释符号 # 井号后面灰色的内容是注释,相当于笔记,会被机器忽略 # 变量和值 # n 是变量, 100 是值,等号的作用是赋值 # n 相当于高中数学的 xyz ,只不过 xyz 的值只能是数字,变量的功能要更强大 n = 100 m = 'hello' print(n
小小科
2018/06/20
2.7K0
R语言模拟:Bias Variance Decomposition
接上一篇《R语言模拟:Bias-Variance trade-off》,本文通过模拟分析算法的泛化误差、偏差、方差和噪声之间的关系,是《element statistical learning》第七章的一个案例。
量化小白
2019/08/29
1.2K0
R语言模拟:Bias Variance Decomposition
用turtle库绘制图形(forest)
✅作者简介:大家好我是hacker707,大家可以叫我hacker 📃个人主页:hacker707的csdn博客 🔥系列专栏:python基础教程 💬推荐一款模拟面试、刷题神器👉点击跳转进入网站 使用Turtle库绘制图形示例如下: from turtle import Turtle, colormode, tracer, mainloop from random import randrange from time import perf_counter as clock def sym
hacker707
2022/11/27
4270
用turtle库绘制图形(forest)
画一棵树
从一个树枝开始,分叉向两端(或者更多端),然后继续从新的树枝进行分叉,......
一只大鸽子
2022/12/06
3970
画一棵树
送你情人节(劫)专属Python全套代码
今天是情人节,送你一套专属Python代码,好像发的有点晚了 ... 不过也没关系,可以留着下次用
Python小二
2022/08/24
2660
送你情人节(劫)专属Python全套代码
R语言三维图的绘制
R语言在可视化方面的地位是毋庸置疑的,但是呢相对于MatalabR语言在三维图形的展示上存在一定的劣势。当然,作为大众的免费软件,指定不服,很多人为此也基于R语言开发了一些相应的三维图的绘制包,像rgl,gg3D,plot3D,scatterplot3d等,我们今天就介绍一下其中的scatterplot3d。
一粒沙
2019/11/10
6.8K0
python,你也和小猪佩奇一样社会了!
随着时间的推移,python变的越来越社会,他的科学计算库也崛起了,自然语言处理(NLP)的库也出来了,还有很多,TensorFlow for python,matplotylib,pillow,itchat,PyQt等等,多到数不清。
我被狗咬了
2019/09/23
7290
python,你也和小猪佩奇一样社会了!
基于turtle的Python作画
pendown()的作用是落笔,只有落笔才能作画。 当不作画却想移动画笔的时候要提笔,用函数penup() forward是画笔向前移动,函数当中参数为移动距离。 forward(100)的意思是画笔向前移动100。
潇洒坤
2018/09/10
2.1K0
基于turtle的Python作画
用python画出你的童年回忆
于是,今天我们来学习python的turtle库绘制童年的卡通人物,皮卡丘,小猪佩奇,小黄人,一起做回年轻的那个少年。
生信交流平台
2020/08/06
8790
用python画出你的童年回忆
520表白代码合集
一、入门级 1. 一行代码画爱心 print('\n'.join([''.join([('Love'[(x-y)%4]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)*
阿黎逸阳
2020/09/07
16.3K1
相关推荐
跟着Nature Plants学作图:R语言ggplot2画分组折线图并对坐标轴添加一些额外注释
更多 >
LV.0
这个人很懒,什么都没有留下~
作者相关精选
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档