预览效果
turtle绘制八卦镜

import turtle as t
from math import sin, cos, tan, pi# 阴爻(yáo)
def yin(size, color='black'):# 初始化画笔t.pensize(size // 8)t.pencolor(color)# 初始化位置t.pu()t.fd(-size / 2)# 落笔t.pd()# 绘制阴爻t.fd(size / 3)t.pu()t.fd(size / 3)t.pd()t.fd(size / 3)# 抬笔t.pu()# 返回起始位置t.fd(-size / 2)# 阳爻(yáo)
def yang(size, color='red'):# 初始化画笔颜色t.pensize(size // 8)t.pencolor(color)# 初始化位置t.pu()t.fd(-size / 2)# 落笔t.pd()# 绘制阳爻t.fd(size)# 抬笔t.pu()# 返回起始位置t.fd(-size / 2)def out(content, pos=(0, 0), size=25, color='blue'):t.setpos(pos[0], pos[1])t.pencolor(color)t.write(content, font=("Arial", size), align="center")'''
乾三连(天)      离中空(火)
兑上缺(泽)      震仰盅(雷)
巽下断(风)      坎中满(水)
艮覆碗(山)      坤六断(地)'''# 坎中满     [水]
def kan(size, heading=90):# 默认垂直向上方向为90°# 计算阳爻绘制角度h = heading - 90# 设置画笔角度t.seth(h)# 计算x坐标偏移量x = 0.33 * size * cos(heading * pi / 180)# 计算y坐标偏移量y = 0.33 * size * sin(heading * pi / 180)# 绘制第一个阳爻yin(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第二个阳爻yang(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第三个阳爻yin(size)# 震仰盅     [雷]
def zhen(size, heading=90):# 默认垂直向上方向为90°# 计算阳爻绘制角度h = heading - 90# 设置画笔角度t.seth(h)# 计算x坐标偏移量x = 0.33 * size * cos(heading * pi / 180)# 计算y坐标偏移量y = 0.33 * size * sin(heading * pi / 180)# 绘制第一个阳爻yin(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第二个阳爻yin(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第三个阳爻yang(size)# 巽下断   [风]
def xun(size, heading=90):# 默认垂直向上方向为90°# 计算阳爻绘制角度h = heading - 90# 设置画笔角度t.seth(h)# 计算x坐标偏移量x = 0.33 * size * cos(heading * pi / 180)# 计算y坐标偏移量y = 0.33 * size * sin(heading * pi / 180)# 绘制第一个阳爻yin(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第二个阳爻yang(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第三个阳爻yang(size)# 艮覆碗   [山]
def gen(size, heading=90):# 默认垂直向上方向为90°# 计算阳爻绘制角度h = heading - 90# 设置画笔角度t.seth(h)# 计算x坐标偏移量x = 0.33 * size * cos(heading * pi / 180)# 计算y坐标偏移量y = 0.33 * size * sin(heading * pi / 180)# 绘制第一个阳爻yin(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第二个阳爻yin(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第三个阳爻yang(size)# 坤(kūn)六断  [地]
def kun(size, heading=90):# 默认垂直向上方向为90°# 计算阳爻绘制角度h = heading - 90# 设置画笔角度t.seth(h)# 计算x坐标偏移量x = 0.33 * size * cos(heading * pi / 180)# 计算y坐标偏移量y = 0.33 * size * sin(heading * pi / 180)# 绘制第一个阳爻yin(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第二个阳爻yin(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第三个阳爻yin(size)# 兑上缺(泽)    [泽]
def dui(size, heading=90):# 默认垂直向上方向为90°(由内而外,从下至上)# 计算阳爻绘制角度h = heading - 90# 设置画笔角度t.seth(h)# 计算x坐标偏移量x = 0.33 * size * cos(heading * pi / 180)# 计算y坐标偏移量y = 0.33 * size * sin(heading * pi / 180)# 绘制第一个阳爻yang(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第二个阳爻yang(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第三个阳爻yin(size)# 乾(qián)三连 [天]
def qian(size, heading=90):# 默认垂直向上方向为90°# 计算阳爻绘制角度h = heading - 90# 设置画笔角度t.seth(h)# 计算x坐标偏移量x = 0.33 * size * cos(heading * pi / 180)# 计算y坐标偏移量y = 0.33 * size * sin(heading * pi / 180)# 绘制第一个阳爻yang(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第二个阳爻yang(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第三个阳爻yang(size)# 离中虚   [火]
def li(size, heading=90):# 默认垂直向上方向为90°# 计算阳爻绘制角度h = heading - 90# 设置画笔角度t.seth(h)# 计算x坐标偏移量x = 0.33 * size * cos(heading * pi / 180)# 计算y坐标偏移量y = 0.33 * size * sin(heading * pi / 180)# 绘制第一个阳爻yang(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第二个阳爻yin(size)# 移动画笔t.setpos(t.pos()[0] + x, t.pos()[1] + y)# 绘制第三个阳爻yang(size)# 太极
def taiji(size, coor=(0, 0)):t.pensize(1)coor  = (coor[0], coor[1] - size)t.pu()t.goto(coor[0], coor[1])t.color('black', 'black')# 绘制黑色鱼t.pd()t.begin_fill()t.circle(size, 180)t.circle(size / 2, 180)t.left(180)t.circle(size / 2, -180)t.end_fill()# 绘制红色鱼t.color('red', 'red')t.begin_fill()t.circle(size, -180)t.circle(size / 2, 180)t.left(180)t.circle(size / 2, -180)t.end_fill()# 绘制黑色鱼眼睛t.pu()t.color('black', 'black')t.left(90)t.fd(size / 2)t.pd()t.begin_fill()t.circle(-size // 8)t.end_fill()# 绘制红色鱼眼睛t.color('red', 'red')t.pu()t.fd(size)t.pd()t.begin_fill()t.circle(size // 8)t.end_fill()t.pu()# 八卦
def draw_bagua(radius, size,order=[qian, kun, xun, dui, kan, li, zhen,gen]):for i in range(0, 360, 45):t.setpos(radius * cos(i * pi / 180), radius * sin(i * pi / 180))order[i//45](size, i)else:t.pu()# 八边形外框
def margin(size):# 计算八边形的高t.pu()hight = size * sin(67.5 * pi / 180) + 20length = hight * 2 * tan(22.5 * pi / 180)t.home()t.sety(hight)t.fd(-length/2)t.pd()t.pensize(8)t.color('black', 'gray')t.begin_fill()for i in range(8):t.fd(length)t.right(45)t.end_fill()def main():t.setup(800, 800)t.hideturtle()# t.speed(10)margin(260)taiji(120)draw_bagua(150, 70)t.done()if __name__ == '__main__':main()

turtle绘制八卦镜相关推荐

  1. python turtle画椭圆-python turtle 绘制太极图的实例

    效果如下所示: # -*- coding: utf-8 -*- import turtle # 绘制太极图函数 def draw_TJT(R): turtle.screensize(800, 600, ...

  2. python画图哆啦a梦-使用Python的Turtle绘制哆啦A梦实例

    这是我几年前为了练习python的turtle库而画的,今天翻出了代码,分享给大家. 这是我初学python时画的,当时还没有面向对象的概念,也没有采取类方法之类,纯原始手工,供大家参考. 若有兴趣可 ...

  3. python turtle画彩虹-Python turtle 绘制彩色螺旋线

    小朋友总会别各种五颜六色的色彩所吸引,就拿小编的小侄子来说,自己很喜欢美术课,看到五颜六色的颜色都想尝试着图一下,但结果总是不仅人意,今天南京小码王Python培训机构,就为大家介绍一下Python ...

  4. python简笔画绘制 数据驱动绘图恐龙_使用python turtle绘制简笔画大白-Go语言中文社区...

    使用python turtle绘制简笔画大白 完整代码: import turtle as t pen = t.Turtle() # 定义画笔实例 pen.speed(0) pen.pensize(5 ...

  5. 使用Python+turtle绘制同心圆

    使用Python+turtle绘制同心圆 问题描述:数学定义上是指:同一平面上同一圆心而半径不同的圆.简单来说就是:圆心相同半径不同的圆,如果几个圆的圆心是同一点,那么这几个圆就叫做同心圆. 本文使用 ...

  6. python画国际象棋_python图形工具turtle绘制国际象棋棋盘

    本文实例为大家分享了python图形工具turtle绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下 #编写程序绘制一个国际象棋的棋盘 import turtle turtle.speed(30) ...

  7. python turtle绘制柱状图_python绘制图形(Turtle模块)

    用python的Turtle模块可以绘制很多精美的图形,下面简单介绍一下使用方法. 需要用到的工具有python,python 的安装这里就不再细说.自行搜索. from turtle import ...

  8. Python+turtle绘制虚线同心圆

    问题描述: 使用turtle绘制虚线同心圆,在绘制过程中,不停地抬笔和落笔来使用实线段模拟虚线效果. 参考代码: 运行效果:

  9. 使用Python+turtle绘制动画重现龟兔赛跑现场

    问题描述:在经典的龟兔赛跑故事中,兔子本来是遥遥领先的,结果因为骄傲,居然在比赛现场睡了一觉,醒来后发现乌龟已经快到终点了,于是赶紧追赶,无奈为时已晚,最终输掉了比赛. 本文使用turtle绘制乌龟和 ...

  10. Python使用turtle绘制阴阳鱼图案

    下面的代码是Python自带的Turtle Demo案例之一,进行了适当改写,并对关键代码进行了注释. 绘制结果: ---------董付国老师Python系列教材-------- 1)<Pyt ...

最新文章

  1. LeetCode实战:快乐数
  2. IOS--常用类--NSArray
  3. php事件和行为,Yii框架组件和事件行为管理详解
  4. 设计模式-单例模式(1)
  5. 高可用集群的脑裂问题
  6. SAP License:启动物料帐后不可更改物料价格的处理方法
  7. 光刻机的“崛起秘密”,第一本ASML的企业成长传记来了!
  8. Vijos P1409 纪念品分组【贪心】
  9. 接口自动化测试框架实例教程
  10. 超级搜索术4-学业有成/职场晋升
  11. Kubernetes网络插件(CNI)超过10Gbit/s网络的基准结果
  12. 需要管理员权限才能删除此文件夹,解决办法
  13. VIVADO中使用BD时,常用的IP
  14. SNF开发平台WinForm之六-上传下载组件使用-SNF快速开发平台3.3-Spring.Net.Framework
  15. 前端毕业设计项目:基于Vue+Nodejs实现宿舍管理系统
  16. 蓝牙控制esp-32单片机(四)
  17. 大数据知识点归纳总结
  18. tigerGraph 实践
  19. Redis知识点总结归纳
  20. 百度地图加载空白颜色_本地地图标点的html实现

热门文章

  1. STM32-ESP8266wifi模块实现
  2. 6.Nginx静态代理
  3. PHP-阿里云oss使用
  4. Linux操作--上传本地文件到服务器
  5. ASROCK X399 PROFESSIONAL GAMING R1.02(70-MXB5Q0-A01)华擎点位图
  6. 浙大PAT甲级-1002
  7. 屏幕录制软件哪个好?
  8. 统一认证 ldap mysql_ZABBIX 对接 LDAP实现用户登陆统一认证
  9. MYSQL监控工具--mytop
  10. 2020编程入门先学什么