python画房子

前言

今天,我们来用Python画房子。


一、第一种

第一种比较简单。

代码:

 
import turtle as t
import timedef go(x, y):t.penup()t.goto(x, y)t.pendown()
def rangle(h,w):t.left(180)t.forward(h)t.right(90)t.forward(w)t.left(-90)t.forward(h)
def leftf(a,l):t.left(a)t.forward(l)
def rightr(a,l):t.right(a)t.forward(l)
def square(w,h):t.forward(h)t.right(90)t.forward(w)t.right(90)t.forward(h)t.right(90)t.forward(w)
t.pencolor("#2F4F4F")
t.hideturtle()
t.speed(100)
t.bgcolor("#48D1CC")
t.penup()
t.goto(-600,-250)
t.pendown()
t.forward(950)
t.goto(-400,-250)
t.fillcolor("#B0E0E6")
t.begin_fill()
t.left(90)
t.forward(15)
t.right(90)
t.forward(225)
t.left(-90)
t.forward(15)
#  门子
rangle(22,150)
rangle(15,225)
#   柱子
go(-385,-235)
rangle(15,23)
go(-383,-220)
rangle(100,18)
go(-385,-120)
t.left(90)
t.forward(23)
go(-385,-120)
t.right(90)
rangle(15,23)go(-280,-235)
rangle(15,23)
go(-278,-220)
rangle(100,18)
go(-280,-120)
t.left(90)
t.forward(23)
go(-280,-120)
t.right(90)
rangle(15,23)go(-160,-228)
rangle(15,23)
go(-158,-213)
rangle(93,18)
go(-160,-120)
t.left(90)
t.forward(23)
go(-160,-120)
t.right(90)
rangle(15,23)go(-63,-228)
rangle(15,23)
go(-61,-213)
rangle(93,18)
go(-63,-120)
t.left(90)
t.forward(23)
go(-63,-120)
t.right(90)
rangle(15,23)go(60,-235)
rangle(15,23)
go(62,-220)
rangle(100,18)
go(60,-120)
t.left(90)
t.forward(23)
go(60,-120)
t.right(90)
rangle(15,23)go(162,-235)
rangle(15,23)
go(164,-220)
rangle(100,18)
go(162,-120)
t.left(90)
t.forward(23)
go(162,-120)
t.right(90)
rangle(15,23)
t.end_fill()#顶部分
t.fillcolor("#F0E68C")
t.begin_fill()
go(-400,-105)
leftf(90,600)
leftf(90,10)
leftf(35,50)
leftf(55,538)
leftf(55,55)
leftf(35,6.5)
t.end_fill()t.fillcolor("#B0E0E6")
t.begin_fill()
go(-149,5)
leftf(150,103)
rightr(120,100)
rightr(90,10)
rightr(90,81)
leftf(120,85)
rightr(90,11.5)
go(-137,8)
leftf(120,76)
leftf(90,78)
leftf(90,76)
leftf(30,75.9)
leftf(120,81.2)
t.end_fill()go(-120,-52)
leftf(120,45)
leftf(90,15)
leftf(90,45)
leftf(90,15)
t.fillcolor("#5F9EA0")
t.begin_fill()
go(-115,-37)
leftf(180,30)
rightr(90,30)
rightr(90,30)
rightr(90,30)
t.end_fill()go(-85,-7)
t.right(90)
t.circle(15,180)
leftf(90,30)
t.fillcolor("#B0E0E6")
t.begin_fill()
go(-320,-45)
t.left(90)
square(150,15)
t.end_fill()
t.fillcolor("#5F9EA0")
t.begin_fill()
go(-305,-30)
t.right(90)
square(120,25)
t.end_fill()
t.fillcolor("#5F9EA0")
t.begin_fill()
go(-305,-5)
t.right(90)
square(120,25)
t.end_fill()
go(-245,20)
t.left(90)
t.forward(50)go(-20,-45)
t.fillcolor("#B0E0E6")
t.begin_fill()
t.left(180)
square(150,15)
t.end_fill()
t.fillcolor("#5F9EA0")
t.begin_fill()
go(-5,-30)
t.right(90)
square(120,25)
t.end_fill()
t.fillcolor("#5F9EA0")
t.begin_fill()
go(-5,-5)
t.right(90)
square(120,25)
t.end_fill()
go(55,20)
t.left(90)
t.forward(50)
go(150,39)
t.forward(100)go(-275,130)
t.left(180)
t.fillcolor("#B0E0E6")
t.begin_fill()
square(20,40)go(-280,170)
t.right(90)
square(30,20)
t.end_fill()
go(-370,55)
rightr(180,110)
go(-250,55)
t.forward(35)
go(-205,55)
t.forward(80)
go(-67,55)
t.forward(120)
go(60,55)
t.forward(35)
go(100,53)
t.forward(60)
go(-395,-95)
t.forward(300)
go(-90,-95)
t.forward(35)
go(-40,-95)
t.forward(55)
go(25,-95)
t.forward(175)
#门
go(-70,-229)
leftf(90,90)
t.circle(30,180)
t.forward(90)
go(-80,-180)
t.fillcolor("#5F9EA0")
t.begin_fill()
t.circle(5,360)
t.end_fill()

二、第二种

第二种是黑白的,很好看。

from turtle import *
setup(900, 600, 300, 100)
penup()
bk(300)
pensize(3)
pencolor("black")
seth(90)
fd(80)
pendown()
seth(0)
fd(200)  # 屋量长
seth(250)
fd(90)   # 屋梁宽
seth(180)
fd(200)
seth(70)
fd(90)  # 斜长
penup()
seth(250)
fd(90)
pendown()
# 下方
seth(270)
fd(110)
seth(0)
fd(200)
seth(90)
fd(110)seth(30)
fd(60)seth(111)
fd(60)seth(-69)
fd(60)seth(-90)
fd(110)
seth(210)
fd(60)
seth(180)
fd(40)
seth(90)
fd(73.2)  # 门右上角
seth(210)
fd(30)
seth(270)
fd(58.2)
penup()
seth(90)
fd(58.2/2)  # 一半门
seth(0)
fd(8)
pendown()
circle(3)
penup()
seth(180)
fd(8)
seth(90)
fd(29.1)
seth(30)
fd(30)
pendown()
seth(180)
fd(40)
seth(270)
fd(73.2)
seth(180)
fd(80)
seth(90)
penup()
fd(36.6)
pendown()
fd(36.6)
seth(0)
fd(36.6)
seth(270)
fd(36.6)
seth(180)
fd(36.6)
seth(90)fd(18.3)
seth(0)
fd(36.6)
seth(90)
fd(18.3)
seth(180)
fd(18.3)
seth(270)
fd(36.6)
penup()
fd(36.6)
seth(180)
fd(36.6)
fd(18.3)
seth(90)
fd(110)
pendown()
for i in range(4):seth(0)fd(20)seth(70)fd(90)seth(0)fd(20)seth(250)fd(90)seth(0)
fd(20)
seth(70)
fd(90)
seth(0)
fd(20)
for i in range(2):penup()seth(250)fd(18)seth(180)pendown()for i in range(10):seth(220)circle(-16, 80)penup()seth(250)fd(18)seth(0)pendown()for i in range(10):seth(-40)circle(16, 80)done()

三、第三种 

第三种也是有些难的。

import turtle
p = turtle.Pen()p.speed(10)
p.pencolor("#F4A460")
p.penup()
p.goto((-240), (-200))
p.pendown()
p.begin_fill()
p.fillcolor("#F4A460")
p.goto(240, (-200))
p.left(90)
p.goto(240, 50)
p.left(90)
p.goto((-240), 50)
p.left(90)
p.goto((-240), (-200))
p.penup()
p.goto((-200), 10)
p.end_fill()
p.pendown()
# 开始画窗户
p.pencolor("#000000")
p.begin_fill()
p.fillcolor("#FFFFFF")
for i in range(4):p.forward(60)p.left(90)
p.end_fill()
p.penup()
p.forward(30)
p.left(90)
p.pendown()
p.forward(60)
p.penup()
for i in range(2):p.left(90)p.forward(30)
p.left(90)
p.pendown()
p.forward(60)
p.penup()
# 开始画门
p.pencolor("#FFFFFF")
p.goto(60, (-200))
p.begin_fill()
p.pendown()
p.right(180)
p.pendown()
p.forward(150)
p.right(90)
p.forward(75)
p.right(90)
p.forward(150)
p.fillcolor("#FFFFFF")
p.end_fill()
# 画门把手
p.right(180)
p.forward(75)
p.penup()
p.left(90)
p.forward(10)
p.pendown()
# 画圆
p.begin_fill()
p.fillcolor("#000000")
p.circle(10)
p.end_fill()
p.penup()
p.goto((-240), 50)
p.pendown()
p.setheading(45)
p.pencolor("#808080")
p.begin_fill()
p.fillcolor("#808080")
p.forward(341)
p.right(90)
p.forward(341)
p.end_fill()
turtle.done()

总结

今天就到这了,OK~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/611243.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue3的 响应式数据

在Vue3中,响应式数据使用ref和reactive函数来创建。 使用ref函数创建响应式数据: import { ref } from vueconst count ref(0) // 创建一个响应式数据count并初始化为0console.log(count.value) // 访问响应式数据需要使用.value属性count.value // 修…

Android通知---创建通知(附加代码)

1. 创建基本通知 (1) 创建基本通知 NotificationCompat.Builder builder new NotificationCompat.Builder(this, "channel_id").setSmallIcon(R.drawable.notification_icon) .setContentTitle("textTitle") .setContentText("text…

ubuntu查看内存使用情况命令

命令简介 在Ubuntu系统中,可以使用终端命令来查看电脑的内存使用情况。打开终端并输入以下命令: free -h 该命令可用于查看系统中内存的总量、已使用的内存、空闲的内存及缓冲区使用的内存。其中“-h”选项用于以人类可读的格式显示内存大小。执行该命…

YOLOv8-Seg改进:轻量化改进 | 超越RepVGG!浙大阿里提出OREPA:在线卷积重参数化

🚀🚀🚀本文改进:OREPA在线卷积重参数化巧妙的和YOLOV8结合,并实现轻量化 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1)手把手教你如何训练YOLOv8-seg; 2)模型创新,提升分割性能; 3)独家…

虽迟但到!MySQL 可以用 JavaScript 写存储过程了!

任何能用 JavaScript 来干的事情,最终都会用 JavaScript 来干 背景 不久前,Oracle 在 MySQL 官方博客官宣了在 MySQL 中支持用 JavaScript 来写存储过程。 最流行的编程语言 最流行的数据库。程序员不做选择,当然是全都要。 使用方法 用 J…

Docker部署情侣恋爱网站

个人名片: 对人间的热爱与歌颂,可抵岁月冗长🌞 个人主页👨🏻‍💻:念舒_C.ying 个人博客🌏 :念舒_C.ying 情侣恋爱网站 1. 修改代码2. 目录结构3. 编写Dockerfile4. 编写d…

基于ssm的物流信息管理系统论文

摘 要 计算机网络发展到现在已经好几十年了,在理论上面已经有了很丰富的基础,并且在现实生活中也到处都在使用,可以说,经过几十年的发展,互联网技术已经把地域信息的隔阂给消除了,让整个世界都可以即时通话…

车速预测 | Matlab基于RBF径向基神经网络的车速预测模型(多步预测,尾巴图)

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 车速预测 | Matlab基于RBF径向基神经网络的车速预测模型(多步预测,尾巴图) 程序设计 完整程序和数据获取方式:私信博主回复Matlab基于RBF径向基神经网络的车速预测模型…

软件测试|MySQL中的GROUP BY分组查询,你会了吗?

MySQL中的GROUP BY分组查询:详解与示例 在MySQL数据库中,GROUP BY语句用于将数据按照指定的列进行分组,并对每个分组执行聚合函数操作。这就是的我们可以在查询中汇总数据并生成有意义的结果。本文将深入介绍MySQL中的GROUP BY语句&#xff…

2023年度总结:但行前路,不负韶华

​ 🦁作者简介:一名喜欢分享和记录学习的在校大学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:Vir2021GKBS &#x…

k8s部署mongodb-sharded7.X集群(多副本集)

#mongodb-sharded 7.X版本CHART NAME: mongodb-sharded CHART VERSION: 7.0.5 APP VERSION: 7.0.2helm repo add bitnami https://charts.bitnami.com/bitnami helm pull bitnami/bitnami/mongodb-sharded --untar默认副本数较多。我修改为33 搜索关键字replicaCount 修改 最后…

Linux 软raid函数 - - align_to_barrier_unit_end

函数功能:获取barrier bucket对齐之后的扇区长度。 源码调用: good_sectors align_to_barrier_unit_end(sector_nr, good_sectors);其中good_sectors的值为128,也就是缺省同步chunk size 64K,kretprobe跟踪的结果来看&#xff0…

盖子的c++小课堂——第二十四讲:差分数组

前言 嗨嗨嗨,这里是盖子的小课堂哟,这次更新主要是因为快放假了,时间多了,好嘞,废话不多说,点赞评论拿来吧你~ 差分数组 一维差分数组 假设给你一个数组 nums ,先对区间 [a,b] 中每个元素加…

C#中关于DataGridView行和列的背景色及列标题的背景颜色设置

1、DateGridView实现黑底红色,可通过设置、背景色、前景色和字体颜色、 默认列标题样式实现。 BackgroundColor设置背景色 GridColor设置网格线颜色 BorderStyle设置边框样式 RowHeadersVisables设置是否显示包含行标题的列 EnableHeadersVisualStyles设置为f…

WPF真入门教程26--项目案例--欧姆龙PLC通讯工具

1、案例介绍 前面已经完成了25篇的文章介绍,概括起来就是从0开始,一步步熟悉了wpf的概念,UI布局控件,资源样式文件的使用,MVVM模式介绍,命令Command等内容,这节来完成一个实际的项目开发&#…

vue项目心得(复盘)

在编写项目过程中,首先是接手一个需要优化的项目,需要查看vue.config.js环境配置地址,确认好测试地址后进行开发,目前在开发过程中,遇到的最多的问题就是关于组件间的, 组件间传值 1、父组件异步传值&…

Helm-从0手动创建charts

Helm-从0手动创建charts 创建 chart 目录结构&#xff1a; mkdir my-nginx cd my-nginx创建 Chart.yaml &#xff1a; cat > Chart.yaml << EOF apiVersion: v2 appVersion: v1.0 description: A Helm chart for Kubernetes name: nginx-app version: 0.1.0 EOF创建…

从0开始学Git指令(2)

从0开始学Git指令 因为网上的git文章优劣难评&#xff0c;大部分没有实操展示&#xff0c;所以打算自己从头整理一份完整的git实战教程&#xff0c;希望对大家能够起到帮助&#xff01; 工作区&#xff08;Working Directory&#xff09; 就是你在电脑里能看到的目录&#x…

性能分析与调优: Linux 使用 iperf3 进行TCP网络吞吐量测试

目录 一、实验 1.环境 2.TCP网络吞吐量的微观基准测试 二、问题 1.iperf参数有哪些 2.iperf如何二进制安装 一、实验 1.环境 &#xff08;1&#xff09;主机 表1-1 主机 主机架构组件IP备注prometheus 监测 系统 prometheus、node_exporter 192.168.204.18grafana监测…

dotdotdot插件快速实现多行文本的省略

jQuery.dotdotdot 前言 在“css新增文本样式&#xff08;完整&#xff09;”这篇&#xff0c;我们介绍了text-overflow属性省略多余的文本。用text-overflow属性可以直接省略单行文本&#xff0c;但省略多行文本&#xff0c;单独使用CSS是无法实现&#xff0c;今天我们介绍一…