用python 您所在的位置:网站首页 怎样画椭圆最简单 用python

用python

2024-02-24 13:32| 来源: 网络整理| 查看: 265

python-turtle库关于画圆问题 第一次写博客用自带命令画圆利用圆的性质画圆画正多边形椭圆

第一次写博客

这是我第一次使用 CSDN 写博客,有问题请斧正。最近在做python课程开发,刚好利用python画圆作为讲解,在网上找到了一些画圆的代码,都是出自有图币的一个视频,没有解释原理,为了解决这个问题又重温了一下初中数学…记录一下挺有意思的。

用自带命令画圆

turtle库自带了画圆命令,下面就是一个最常见的画圆代码,不做解释。

import turtle as t t.color("red") turtle.circle(30) turtlr.done() 利用圆的性质画圆

我们知道古人是非常聪明的,利用在圆内切正多边形求圆周率,那么我们也可以反向思维一下,干脆画一个正多边形,当边足够多,多到一个边只占有一个像素点的时候那么肉眼看起来就是一个圆了。思路如下: 每次前进时先向左转3度,然后向前走1像素点那么需要转120次就能画出一个正120边型(3度/360度=120次)这样就很像一个圆了。

import turtle as t pen = t.Turtle() #定义画笔实例 a = 1 #前进的长度 for i in range(120): pen.lt(3) #向左转3度 pen.fd(a) #向前走a的步长 print(pen) t.mainloop() 画正多边形

当你试图修改上述代码中的range()和pen.lt()中的数字时,你会发现你又get了新技能,用turtle画正n边形。n取决于range()的取值。只要确保range()是正整数且两数相乘等于360,就可以做出来正n边型。如下是画正方形的代码。(边数小的时候把a变大,会更明显)

import turtle pen = turtle.Turtle() a = 100 for i in range(120): pen.lt(3) pen.fd(a) print(pen) turtle.mainloop() 椭圆

接下来就是这篇文章的核心,也是我为什么写这篇博客的理由。要想画出椭圆,画笔在不同角度的时候前进的长度不一样,我们可以把椭圆拆分成四个部分如下图。画笔的路线是(D-A-B-C)通过观察我们不难发现,从D-A线的弧度越来越大,从A-B线的弧度越来越小。从B-C弧度又开始越来越大,从C-D弧度越来越小。那么我们要是想画一个椭圆就要处理四个部分,是否也意味着我们需要四段代码呢?不是,我们只要对刚才画圆的代码进行修改就行。 当D-A的时候每次前进的步长要不断增大,所以a变大;当A-B的时候每次前进的步长要不断减小,a变小;当B-C的时候每次前进的步长再次增大,当C-D的时候每次前进的步长再次不断减小。我们不难发现一个规律,大小大小。那么我们是否可以用循环加判断来解决呢? 椭圆

import turtle pen=turtle.Turtle() #定义画笔实例 a=1 for i in range(120): if 0


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有