如何用turtle画椭圆?

6 篇文章 1 订阅
订阅专栏

问题:turtle工具中有circle(radius, extent=None, steps=None)方法画圆、圆弧、正多边形,但没有方法或函数能画椭圆,那椭圆该如何画呢?

思想:当正多边形的边数n趋于无穷大的时候,所画出来的图形即为圆形。同理,当扁的多边形的边数n趋于无穷大的时候,所画出来的图形即为椭圆。

一、中心在坐标原点的椭圆

已知椭圆的方程为 x 2 a 2 + y 2 b 2 \frac{x^2}{a^2}+\frac{y^2}{b^2} a2x2+b2y2,则椭圆的参数方程为: x = a cos ⁡ θ , y = b sin ⁡ θ , 0 ≤ θ ≤ 2 π x=a\cos \theta ,y=b\sin \theta ,0\le \theta \le 2\pi x=acosθy=bsinθ0θ2π,其实现程序如下:

import turtle, math
p = turtle.Turtle()


def ellipse(a, b, n=500):
    """
    绘制椭圆函数
    :param a: 长半轴长度
    :param b: 短半轴长度
    :param n: 边的数目 -- n越大,越趋近于椭圆
    :return:
    """
    p.penup()
    p.setpos(a, 0)  # 初始点的位置
    p.pendown()
    for i in range(n):  # 画扁的n边形。当n --> 无穷大,所画出的图形即为椭圆
        radian = 2 * math.pi / n  # 将2pi弧度分成n份,每份为radian
        theta = (i+1)*radian  # 每次弧度增加radian
        next_point = (a*math.cos(theta), b*math.sin(theta))
        p.setpos(next_point)

ellipse(200, 100)
p.hideturtle()
turtle.mainloop()

绘制效果:

二、椭圆可以是斜着的,椭圆中心也可在任意位置

假设椭圆绕着x正轴方向旋转 α \alpha α角度,则椭圆的参数方程为:

x = a cos ⁡ θ cos ⁡ α − b sin ⁡ θ sin ⁡ α , y = a cos ⁡ θ sin ⁡ α + b sin ⁡ θ cos ⁡ α , 0 ≤ θ 、 α ≤ 2 π x=a\cos \theta\cos \alpha -b\sin \theta \sin \alpha ,y=a\cos \theta\sin \alpha + b\sin \theta \cos \alpha ,0\le \theta、\alpha \le 2\pi x=acosθcosαbsinθsinαy=acosθsinα+bsinθcosα0θα2π

任意左右上下移动的参数方程为: x = a cos ⁡ θ cos ⁡ α − b sin ⁡ θ sin ⁡ α + r i g h t , y = a cos ⁡ θ sin ⁡ α + b sin ⁡ θ cos ⁡ α + u p , 0 ≤ θ 、 α ≤ 2 π x=a\cos \theta\cos \alpha -b\sin \theta \sin \alpha +right ,y=a\cos \theta\sin \alpha + b\sin \theta \cos \alpha+up ,0\le \theta、\alpha \le 2\pi x=acosθcosαbsinθsinα+righty=acosθsinα+bsinθcosα+up0θα2π。当 r i g h t > 0 right>0 right>0时,实际往右移动;当 r i g h t < 0 right<0 right<0时,实际往左移动。当 u p > 0 up>0 up>0时,实际往上移动;当 u p < 0 up<0 up<0时,实际往下移动。

其实现程序如下:

import turtle, math
p = turtle.Turtle()

def new_ellipse(a, b, n=500, right=0, up=0, alpha=360):
    """
    将椭圆旋转和左右移动
    :param a:长半轴长度
    :param b:短半轴长度
    :param n:边的数目 -- n越大,越趋近于椭圆
    :param right:椭圆往右移动的距离 -- 大于0:实际往右移动,小于0:实际往左移动
    :param up:椭圆往上移动的距离 -- 大于0:实际往上移动,小于0:实际往下移动
    :param alpha:椭圆旋转的角度
    :return:
    """
    alpha = (2*math.pi/360)*alpha  # 计算旋转的角度对应的弧度值
    theta = 0
    start_point = (a * math.cos(theta)*math.cos(alpha) - b * math.sin(theta)*math.sin(alpha) + right,
                   a * math.cos(theta)*math.sin(alpha) + b * math.sin(theta)*math.cos(alpha) + up)
    p.penup()
    p.setpos(start_point)  # 初始点的位置
    p.pendown()
    for i in range(n):
        radian = 2 * math.pi / n  # 将2pi弧度分成n份,每份为radian
        theta = (i + 1) * radian  # 每次弧度增加radian
        next_point = (a * math.cos(theta)*math.cos(alpha) - b * math.sin(theta)*math.sin(alpha) + right,
                      a * math.cos(theta)*math.sin(alpha) + b * math.sin(theta)*math.cos(alpha) + up)
        p.setpos(next_point)

new_ellipse(200, 100, alpha=45)
new_ellipse(200, 100, up=-150, alpha=90)
new_ellipse(200, 100, right=100, up=100, alpha=120)
p.hideturtle()
turtle.mainloop()

绘制效果:
在这里插入图片描述

python椭圆turtle_用python-turtle优雅的椭圆
weixin_27717759的博客
02-10 4016
python-turtle库关于圆问题第一次写博客这是我第一次使用 CSDN 写博客,有问题请斧正。最近在做python课程开发,刚好利用python圆作为讲解,在网上找到了一些圆的代码,都是出自有图币的一个视频,没有解释原理,为了解决这个问题又重温了一下初中数学…记录一下挺有意思的。用自带命令turtle库自带了圆命令,下面就是一个最常见的圆代码,不做解释。import turtl...
python椭圆-Python易学就会(五)turtle绘制椭圆与递归
weixin_37988176的博客
11-01 1364
前两篇文章基本涵盖了turtle的大部分功能,同时也借由对turtle功能的展示,厘清了Python的一些语法特点,以利于新手入门。但是短短几个例子,阐述得还是有限,这里再展开两个知识点,一方面对turtle做个补遗,另一方面把Python语法的大框架过完一遍。第一个是椭圆。上一节中描述了如何用turtle一个圆,或者是一段弧线,但是在很多图形中需要用到椭圆,如何出一段优美的椭圆,是本篇的第...
python turtle 椭圆(以及变形糖果)
最新发布
chenzhigang1946的博客
09-20 333
【代码】python turtle 椭圆(以及变形糖果)
Python使用turtle库绘制椭圆图形(自定义旋转角度、大小、颜色以及填充)
程序必须为人类阅读而编写,并且仅仅碰巧可以让机器执行
02-08 8140
文章目录一、使用说明二、代码三、使用说明 一、使用说明 确保电脑上安装了 turtle 库: pip install -i https://mirrors.aliyun.com/pypi/simple turtle 调用库: import turtle as t 二、代码 代码如下: def ellipse(x, y, theta, l, size = 1, color = 'black'): """ Created on Tue Feb 8 20:19:39 2022
python turtle椭圆-【python turtle如何椭圆
weixin_37988176的博客
11-01 3118
python turtle4个同心圆方法from turtle import *def Circle(radius,angle,length):for i in range(length):penup()goto(0,angle)pendown()circle(radius)angle=angle 50radius=radius-50Circle(200,-200,4)done()用Python...
python圆的代码turtle_用Python中turtle库circle()圆函数的使用方法
weixin_39750410的博客
11-20 3455
用Python中turtle库circle()圆函数的使用方法发布时间:2020-08-21 11:09:06来源:亿速云阅读:736作者:小新小编给大家分享一下用Python中turtle库circle()圆函数的使用方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!turtle库的基本函数一只大耳朵小兔子,灵感...
如何用turtle圆、五角星和椭圆
12-22
文章目录1. turtle的异常报错2. 多边形、圆、五角星2.1 十边形2.2 圆2.3 五角星3. 椭圆和多边形3.1 六边形3.2 椭圆3.3 旋转和移动椭圆 1. turtle的异常报错 turtle模块和pycharm有冲突,如果出现下面这种不提示代码而且标黄的情况。 需要进入turtle.py源文件里面找到下面这段代码并将这段代码注释掉。 # __all__ = (_tg_classes + _tg_screen_functions + _tg_turtle_functions + # _tg_utilities + ['Terminator']) # +
python turtle椭圆-Python易学就会(五)turtle绘制椭圆与递归
weixin_37988176的博客
11-01 1106
前两篇文章基本涵盖了turtle的大部分功能,同时也借由对turtle功能的展示,厘清了Python的一些语法特点,以利于新手入门。但是短短几个例子,阐述得还是有限,这里再展开两个知识点,一方面对turtle做个补遗,另一方面把Python语法的大框架过完一遍。第一个是椭圆。上一节中描述了如何用turtle一个圆,或者是一段弧线,但是在很多图形中需要用到椭圆,如何出一段优美的椭圆,是本篇的第...
用python-turtle优雅的椭圆
qq_38351497的博客
03-13 2万+
python-turtle库关于圆问题第一次写博客用自带命令圆利用圆的性质正多边形椭圆 第一次写博客 这是我第一次使用 CSDN 写博客,有问题请斧正。最近在做python课程开发,刚好利用python圆作为讲解,在网上找到了一些圆的代码,都是出自有图币的一个视频,没有解释原理,为了解决这个问题又重温了一下初中数学…记录一下挺有意思的。 用自带命令turtle库自带了圆命令,...
python turtle椭圆_如何在Python turtle图形中绘制椭圆而不是冲压?
weixin_39888412的博客
11-23 655
在测试@moomoo309的椭圆代码并发现问题(打印位置错误,宽度和高度与参数不匹配,忽略海龟标题,因此无法打印倾斜的椭圆,标题不跟踪绘图,笔不保持原始状态等)之后,我决定尝试自己写。我选择使用turtle.circle()作为相对于现有海龟位置和方向绘制椭圆的模型,允许用户更改步骤(即生成其他不规则多边形)、保留笔的状态和开始位置等。这就是我想到的(我使用self,而不是turtle或pen作为...
椭圆turtle)
weixin_51323049的博客
04-25 843
from turtle import * penup() goto(0, -100) pendown() y = 100 list1 = ['red', 'blue'] for k in list1: color(k) begin_fill() circle(y) penup() goto(0, -85) pendown() y -= 15 end_fill() hideturtle() penup() goto(0, 70) pend.
用Python海归作图--turtle椭圆
My_daily_life的博客
10-28 4372
想必大家都想过用Python中的turtle椭圆吧,自己思考了许久,终于琢磨着出了椭圆,但是我不知道这个方法是不是最简单的,是不是正确的,如果有错误请指正,如果觉得好用就尽管拿去用,哈哈哈 代码如下: import turtle def half_a(x): a = x b = 90 while True: turtle.circle(a, 1) a = a - x / 100 b = b - 1 if b == 0: break def h
Python海龟turtle椭圆方法
weixin_55207357的博客
09-10 3487
Python中用海龟库椭圆,可任意调节,容易移植
用python turtle椭圆_使用Python的turtle哆啦 A 梦
weixin_39955829的博客
11-21 201
from
python turtle 椭圆_python turtle canvas
weixin_39628180的博客
02-19 668
Canvas 的坐标系统是绘图的基础,其中点 (0,0) 位于 Canvas 组件的左上角,X 轴水平向右延伸,Y 轴垂直向下延伸。create_arc:绘制弧。create_bitmap:绘制位图。create_image:绘制图片。create_line():绘制直线。create_polygon:绘制多边形。create_text:绘制文字。create_window:绘制组件。create...
python绘制椭圆
11-19 2006
#!/usr/bin/env python # --*-- coding:utf-8 --*-- import matplotlib.pyplot as plt import numpy as np t=[i/np.pi for i in np.arange(0,360)] x=2*np.cos(t) y=np.sin(t) plt.plot(x,y) plt.show()
python椭圆形函数算法,python椭圆形的代码
chatgpt001的博客
09-15 488
我们知道,正8边形比正6边形肯定要更接近一个圆,正16边形比正8边形又更接近一个圆,如果我们能出一个正120边形,或者正360边形的话,那是非常接近一个圆的。不用说,在普通个人电脑上,“正120边形”在我们眼里肯定它就是一个“圆”了。前两篇文章基本涵盖了turtle的大部分功能,同时也借由对turtle功能的展示,厘清了Python的一些语法特点,以利于新手入门。上一节中描述了如何用turtle一个圆,或者是一段弧线,但是在很多图形中需要用到椭圆,如何出一段优美的椭圆,是本篇的第一个知识点。
Python - 用 turtle 绘制圆形
热门推荐
Sunlight的博客
01-03 8万+
大学计算机–Python算法实践 李金双、李凤云、张昱 Turtle 库是 Python 语言中一个很流行的绘制图像的函数库 Turtle 库用于绘制线、圆、其他形状或者文本 显示小乌龟的爬行轨迹,初始小乌龟在(0, 0),前进方向为 x 轴正方向 绘制圆形 import turtle turtle.color('red') turtle.circle(39) turtle.d...
怎么用turtle椭圆
05-05
你可以使用Python中的turtle库来绘制椭圆。下面是一个简单的例子: ```python import turtle # 创建一个布 canvas = turtle.Screen() canvas.bgcolor("white") # 创建一个小乌龟 t = turtle.Turtle() t.color("blue") t.speed(0) # 绘制椭圆 a = 100 # 椭圆的长轴 b = 50 # 椭圆的短轴 t.penup() t.goto(0, -b) t.pendown() t.circle(a, 90) t.circle(b, 90) t.circle(a, 90) t.circle(b, 90) # 等待用户关闭窗口 turtle.done() ``` 在这个例子中,我们创建了一个白色背景的布,并创建了一个小乌龟。然后使用`circle`函数来绘制椭圆。`circle`函数的第一个参数是椭圆的半径,第二个参数是椭圆的弧度。由于椭圆是由4个半圆拼接而成的,因此我们需要使用`circle`函数两次来绘制长轴和短轴。 运行这个程序,你应该能够看到一个蓝色的椭圆。你可以改变椭圆的长轴和短轴的长度来绘制不同大小的椭圆
13
原创
21
点赞
88
收藏
7
粉丝
关注
私信
写文章

热门文章

  • 如何用turtle画椭圆? 8605
  • Python2.7之wxPython安装步骤 6041
  • kaldi中mfcc和pitch特征提取 5009
  • FST图的理解 2869
  • linux两个文件下一行行对比,输出内容完全相同的行 2351

分类专栏

  • 深度学习 1篇
  • linux 2篇
  • kaldi 3篇
  • 语音识别 3篇
  • 工具 1篇
  • 数据结构与算法 1篇
  • python 6篇

最新评论

  • 如何用turtle画椭圆?

    ljc_1126: 直接在19行(theta)后面加减就可以了

  • 如何用turtle画椭圆?

    不愿躺平的小飞: 如何移动椭圆位置呀?

  • 如何用turtle画椭圆?

    浪花卷起千堆雪:

最新文章

  • tensorflow-gpu1.14.0/cuda10.0/cudnn7.4.1环境搭建
  • ubuntu18.04搭建
  • 石头的摆放与被砍的树
2021年3篇
2020年10篇
2019年2篇

目录

目录

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格桑8

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家无锡玻璃钢人物雕塑定制茂名玻璃钢卡通雕塑代理价格佛山玻璃钢仿真动物雕塑价格清远玻璃钢仿铜人物雕塑高要玻璃钢浮雕雕塑枣庄景区玻璃钢雕塑价格锦州玻璃钢雕塑生产厂家黄冈玻璃钢景观雕塑深圳玻璃钢雕塑招聘信息河北仿铜玻璃钢雕塑订做价格浙江中庭商场美陈销售公司赤峰玻璃钢关公雕塑安丘玻璃钢雕塑人体通化火烈鸟玻璃钢雕塑厂家梅州玻璃钢花盆玻璃钢雕塑制作联系电话句容设计玻璃钢雕塑价格福州企业玻璃钢雕塑北京玻璃钢动物雕塑厂家高淳新年商场美陈玻璃钢动植物雕塑通化沈阳玻璃钢花盆江津玻璃钢胸像雕塑苏州玫红色玻璃钢花盆玻璃钢动漫雕塑批发卡通人物玻璃钢雕塑多少钱无锡拉丝玻璃钢雕塑服务介绍北京龙虾玻璃钢雕塑工艺厂鲁班玻璃钢雕塑玻璃钢小品雕塑型号香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化