Python编写万花尺图案实例

作者:zhimaHTTP 时间:2022-04-16 06:12:21 

小的时候大家应该都玩过万花尺,将笔尖放置万花尺内不停的转动,便可以画出一幅精致的线稿图,现在我们不用万花尺,我们通过Python也能绘制出万花尺图案。

(一)代码


#!/usr/bin/python# -*- coding: UTF-8 - *-
import mathclass PTS:
def __ init __(self):
self.x = 0
self.y = 0
points = []
def LineToDemo():
from Tkinter import *
screenx = 400
screeny = 400
canvas = Canvas(width = screenx,height = screeny,bg = ‘white')

AspectRatio = 0.85
MAXPTS = 15
h = screeny
w = screenx
xcenter = w / 2
ycenter = h / 2
radius = (h - 30) / (AspectRatio * 2) - 20
step = 360 / MAXPTS
angle = 0.0
for i in range(MAXPTS):
 rads = angle * math.pi / 180.0
 p = PTS()
 p.x = xcenter + int(math.cos(rads) * radius)
 p.y = ycenter - int(math.sin(rads) * radius * AspectRatio)
 angle += step
 points.append(p)
canvas.create_oval(xcenter - radius,ycenter - radius,
         xcenter + radius,ycenter + radius)
for i in range(MAXPTS):
 for j in range(i,MAXPTS):
   canvas.create_line(points[i].x,points[i].y,points[j].x,points[j].y)

canvas.pack()
mainloop()if __name__ == '__main__':
LineToDemo()

(二)实现结果

Python编写万花尺图案实例

我们还可以通过修改不同的参数来实现不同的图案转化,大家可以多试试,做出多种不同的效果图。

来源:https://blog.csdn.net/zhimaHTTP/article/details/111406131

标签:Python,万花尺
0
投稿

猜你喜欢

  • Go语言基础函数基本用法及示例详解

    2024-05-09 14:57:15
  • 基于python 将列表作为参数传入函数时的测试与理解

    2023-02-07 19:51:18
  • 批量更新存储过程所有者

    2010-07-15 21:14:00
  • django实现前后台交互实例

    2022-04-12 20:53:33
  • python通过pil将图片转换成黑白效果的方法

    2021-07-17 22:13:16
  • MySQL获取当前时间的多种方式总结

    2024-01-21 02:29:34
  • python3处理word文档实例分析

    2023-01-06 23:21:13
  • linux中数据库的定时备份

    2024-01-25 17:43:25
  • Python 利用pydub库操作音频文件的方法

    2022-12-12 05:42:53
  • Google中秋logo被恶搞

    2007-09-25 15:55:00
  • MySQL锁(表锁,行锁,共享锁,排它锁,间隙锁)使用详解

    2024-01-20 12:07:17
  • Go语言空结构体详解

    2024-04-30 10:07:44
  • 通过百度地图获取公交线路的站点坐标的js代码

    2024-04-18 09:28:14
  • Python基于Opencv来快速实现人脸识别过程详解(完整版)

    2023-09-06 17:04:25
  • 初学JavaScript第二章

    2024-04-17 10:11:30
  • 利用ADODB.Stream使用浏览器下载服务器文件

    2008-10-09 12:42:00
  • PyQt中实现自定义工具提示ToolTip的方法详解

    2023-11-09 13:34:56
  • MySQL中使用FREDATED引擎实现跨数据库服务器、跨实例访问

    2024-01-25 12:55:52
  • Python 安装setuptools和pip工具操作方法(必看)

    2023-11-06 11:46:07
  • Go语言学习教程之声明语法(译)

    2024-02-01 03:44:16
  • asp之家 网络编程 m.aspxhome.com