用Python画“订书钉玫瑰”

最近网上有一个很火的视频,是用了一些订书钉拼成一朵玫瑰,拼装教程有很多,网上都能搜到。正好最近学python,有一道练习题是用python的turtle库来绘制玫瑰花。简单搜了下,目前网上还没有用python画这种订书钉玫瑰的,所以花了一点时间,将这种玫瑰的绘制用python实现了出来。现在正值520,将这段代码贴出来,需要的兄弟可以直接拿去用。

先上成品图:

在这里插入图片描述
绘制方法其实就是找出图中的基本图形,然后不断的调整方向,重复的绘制这个基本图形。

下面是完整代码:

from  turtle import *
pensize(6)
color('red')

def write():
    fd(60)
    right(90)
    fd(130)
    right(90)
    fd(60)
    left(150)
    fd(60)
    left(90)
    fd(130)
    left(90)
    fd(60)

hideturtle()
x,y = pos()
right(150)
write()
for i in range(5):
    penup()
    goto(x,y)
    left(90)
    fd(25)
    x,y = pos()
    left(180)
    pendown()
    write()

done()

这只是这种玫瑰花的一种绘制方法,相信还可以找到其他的绘制规律。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的教材管理系统Java代码,包含了订书功能: ```java import java.util.Scanner; public class TextbookManagementSystem { private static int numBooks = 0; private static final int MAX_BOOKS = 100; private static Book[] books = new Book[MAX_BOOKS]; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int choice; do { System.out.println("请选择要执行的操作:"); System.out.println("1. 添加教材"); System.out.println("2. 显示所有教材"); System.out.println("3. 订购教材"); System.out.println("4. 退出"); choice = scanner.nextInt(); switch (choice) { case 1: addBook(); break; case 2: displayBooks(); break; case 3: orderBook(); break; case 4: System.out.println("程序已退出"); break; default: System.out.println("无效的选项,请重新选择"); } } while (choice != 4); } private static void addBook() { if (numBooks >= MAX_BOOKS) { System.out.println("已经添加了最大数量的教材"); return; } Scanner scanner = new Scanner(System.in); System.out.println("请输入教材名称:"); String name = scanner.nextLine(); System.out.println("请输入教材作者:"); String author = scanner.nextLine(); System.out.println("请输入教材价格:"); double price = scanner.nextDouble(); Book book = new Book(name, author, price); books[numBooks] = book; numBooks++; System.out.println("教材添加成功"); } private static void displayBooks() { if (numBooks == 0) { System.out.println("没有任何教材"); return; } System.out.printf("%-20s %-20s %-10s\n", "教材名称", "教材作者", "价格"); for (int i = 0; i < numBooks; i++) { Book book = books[i]; System.out.printf("%-20s %-20s %-10.2f\n", book.getName(), book.getAuthor(), book.getPrice()); } } private static void orderBook() { if (numBooks == 0) { System.out.println("没有任何教材"); return; } Scanner scanner = new Scanner(System.in); System.out.println("请输入要订购的教材名称:"); String name = scanner.nextLine(); for (int i = 0; i < numBooks; i++) { Book book = books[i]; if (book.getName().equals(name)) { System.out.println("请输入要订购的数量:"); int quantity = scanner.nextInt(); book.order(quantity); System.out.printf("已成功订购%d本%s\n", quantity, name); return; } } System.out.printf("没有找到名称为%s的教材\n", name); } } class Book { private String name; private String author; private double price; private int quantity; public Book(String name, String author, double price) { this.name = name; this.author = author; this.price = price; this.quantity = 0; } public String getName() { return name; } public String getAuthor() { return author; } public double getPrice() { return price; } public int getQuantity() { return quantity; } public void order(int quantity) { this.quantity += quantity; } } ``` 这个代码实现了一个简单的教材管理系统,其中包含了订书功能。在主菜单中选择“订购教材”选项后,用户可以输入要订购的教材名称和数量,系统会自动更新教材的数量信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值