python画房子

news2024/11/15 7:28:39

前言

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


一、第一种

第一种比较简单。

代码:

 
import turtle as t
import time
 
 
def 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.coloradmin.cn/o/1369690.html

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

相关文章

解决Qt Creator中文乱码的问题

方法1 使用QStringLiteral()包裹中文字符串 QString str1"中文测试!"; QString str2QStringLiteral("中文测试!");方法2 #if _MSC_VER > 1600//MSVC2015>1899,MSVC_VER14.0 #pragma execution_character_set("utf-8&qu…

Java里的实用类

1.枚举 语法: public enum 变量名{ 值一,值二} 某个变量的取值范围只能是有限个数的值时,就可以把这个变量定义成枚举类型。 2…装箱(boxing) 和拆箱(unboxing) 装箱(boxing&…

npm安装vue,添加淘宝镜像

如果是第一次使用命令栏可能会遇到权限问题。 解决vscode无法运行npm和node.js命令的问题-CSDN博客 安装 在vscode上面的导航栏选择terminal打开新的命令栏 另外可能会遇到网络或者其他的问题,可以添加淘宝镜像 npm install -g cnpm --registryhttps://registry.…

Java经典框架之Dubbo

Dubbo Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。 课程内容的介绍 1. Dubbo概述 2. Dubbo基本应用 3…

【JAVA】Java8开始ConcurrentHashMap,为什么舍弃分段锁

🍎个人博客:个人主页 🏆个人专栏: JAVA ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 分段锁的好处: 结语 我的其他博客 前言 在Java 8中,ConcurrentHashMap的实现经历了重大的改进&am…

新AI图像分割方法GenSAM:一个提示实现批量图片分割

近期,研究人员提出了一种新型图像分割方法,称为Generalizable SAM(GenSAM)模型。该模型的设计目标是通过通用任务描述,实现对图像的有针对性分割,摆脱了对样本特定提示的依赖。在具体任务中,给定…

C# 强制类型转换和as区别和不同使用场景

文章目录 1.强制类型转换2. as 运算符3.实例总结: 在C#中,as 和 强制类型转换(例如 (T)value)的主要区别在于它们处理类型转换不成功时的行为和适用场景: 1.强制类型转换 使用语法:Type variable (Type)…

C语言深度剖析 -- 深度理解符号

文章目录 注释符号yx/*p条件编译 续行符与转义符 \回车与换行的区别 单引号与双引号逻辑运算符位运算符&、|、^整型提升问题左移 << 右移 >>花括号&#xff08;了解&#xff0c;不太推荐&#xff09;、-- 操作符 我们为什么要深入理解C语言中的符号呢&#xff…

JS入门笔记整理:函数

函数一般用来实现某种重复使用的功能&#xff0c;在需要使用该功能的时候&#xff0c;直接调用函数就可以了&#xff0c;不需要再重复地编写一大堆代码。并且在需要修改该函数功能的时候&#xff0c;也只需要修改和维护这一个函数就行。函数一般会在两种情况下使用&#xff1a;…

助力企业出海,Ogcloud提供一站式网络解决方案

随着全球市场的开放和跨境电商的蓬勃发展&#xff0c;越来越多企业开始在海外拓展业务。但在这过程中&#xff0c;各种各样的网络问题成为企业出海的阻碍。Ogcloud凭借其卓越的技术实力和丰富的经验&#xff0c;为全球业务的公司提供全面的网络解决方案&#xff0c;包括SD-WAN、…

文件或目录损坏的磁盘修复方法

文件或目录损坏是一种常见的计算机问题&#xff0c;可能由多种原因导致&#xff0c;如磁盘故障、病毒或恶意软件攻击、文件系统错误等。这些损坏可能导致数据丢失或无法访问文件&#xff0c;因此及时修复至关重要。本文将深入探讨文件或目录损坏的原因&#xff0c;并提供相应的…

Zookeeper的基础介绍和安装教程

1、 Zookeeper入门 1.1 概述 Zookeeper是一个开源的分布式的&#xff0c;为分布式应用提供协调服务的Apache项目。 1.2 特点 1.3 数据结构 1.4 应用场景 提供的服务包括&#xff1a;统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。 统一…

编程基础 - 初识Linux

编程基础 - 初识Linux 返回序言及专栏目录 文章目录 编程基础 - 初识Linux前言一、Linux发展简介二、现代Linux三、Linux系统各发行版小结 前言 为什么要学习Linux呢&#xff1f;我这Windows用得好好的&#xff0c;简单易用傻瓜式、用的人还超多&#xff01;但是我要告诉你的…

解决word图片格式错乱、回车图片不跟着换行的问题

解决word图片格式错乱、回车图片不跟着换行的问题 1.解决方法。 先设置为嵌入型 但是设置的话会出现下面的问题。图片显示不全。 进一步设置对应的行间距&#xff0c;原先设置的是固定值&#xff0c;需要改为1.5倍行距的形式&#xff0c;也就是说不能设置成固定值就可以。

mybatisplus快速入门-个人理解版

mybatisplus快速入门 1.快速入门1.1准备开发环境-idea2019.2.1版第一步&#xff1a;新建工程第二步&#xff1a;导入依赖 1.2创建数据库和表创建库表添加数据 1.3编写代码进行测试第一步&#xff1a;配置application.yml第二步&#xff1a;添加实体类第三步&#xff1a;添加map…

让开发改bug全靠催?分享6个实用技巧

测试小伙伴们&#xff0c;你们有遇到下图的情况吗&#xff1f; ​ 这张图其实还算“温柔”的&#xff0c;其实有些情况下&#xff0c;某些测试人员或者开发人员脾气大的可能撕逼或者快干架。所以如何和开发有效沟通&#xff0c;并高效劝说开发改掉bug是一门学问&#xff0c;以…

手拉手springboot3整合mybatis-plus多数据源

环境介绍 技术栈 springbootmybatis-plusmysql 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 17 Spring Boot 3.1.7 dynamic-datasource 3.6.1 mybatis-plus 3.5.3.2 加入依赖 <dependency><groupId>com.baomidou</groupId><arti…

softmax详解

在神经网络中&#xff0c;Softmax 是一个用于多类别分类的激活函数。给定一个包含原始分数&#xff08;未经处理的模型输出&#xff09;的向量&#xff0c;Softmax 将这些分数转化为表示概率分布的向量。具体而言&#xff0c;对于给定的原始分数向量 ( z )&#xff0c;Softmax …

STM32-03-STM32HAL库

文章目录 STM32HAL库1. HAL库介绍2. STM32Cube固件包3. HAL库框架结构4. 新建HAL版本MDK工程 STM32HAL库 1. HAL库介绍 HAL库 HAL&#xff0c;英文全称 Hardware Abstraction Layer&#xff0c;即硬件抽象层。HAL库是ST公司提供的外设驱动代码的驱动库&#xff0c;用户只需要调…

CentOS找回root密码

很悲伤&#xff0c;你忘记了root密码。。。 那就来重置它吧~ 1、在启动时选择操作系统&#xff1a;在引导过程中&#xff0c;选择CentOS操作系统并按下键盘上的任意键来停止引导。 2、 进入编辑模式&#xff1a;在启动菜单中&#xff0c;找到并选择要编辑的CentOS条目&…