时间:2021-04-29 10:48
大小:14.1M
系统:Android
语言:中文
小编今天给大家带来的是万花尺画图软件,专门为儿童设计的智能玩具和设计工具包括套装工具和齿轮工具。结合齿轮让你画各种美丽的模式。儿童空间图形想象力、色彩搭配能力和审美感知能力的培养,还能开发孩子的大脑,感兴趣的就快来下载吧
在作画过程中,两者内外齿要始终靠合。完成后纸上便会留下一个不可思议的美丽花朵。
子尺上小孔的极小位移会引起图案类型的极大变化。
作画时,将子尺内置于母尺内环之中,轮牙镶嵌,笔头插在子尺的小孔中,用笔带动子尺顺着母尺的内沿齿轮反复作圆周运动。
子尺形状的变化有很多,除了圆形,还有椭圆形,弧边的三角形、十字形、梅花形、方形、多边形等等。
简单易用,这款操作学习软件孩子在手机上也是可以轻松来操作完成的,就是这样的简单;
自动绘画,孩子是可以自己在手机上操作的,非常的简单,一点也不难操作。
孩子们可以在自己的手机上来操作,能够自定义的在上面进行绘画操作完成;
万花尺由母尺和子尺两部分组成。常见的母尺是内环形齿轮,子尺是带多孔的外环形齿轮。作画时,将子尺内置于母尺内环之中,轮牙镶嵌,笔头插在子尺的小孔中,
用笔带动子尺顺着母尺的内沿齿轮反复作圆周运动。在作画过程中,两者内外齿要始终靠合。完成后纸上便会留下一个不可思议的美丽花朵。子尺上小孔的极小位移会引起图案类型的极大变化。
子尺形状的变化有很多,除了圆形,还有椭圆形,弧边的三角形、十字形、梅花形、方形、多边形等等。母尺的变化不大,但有些母尺的外沿也带齿轮,把子尺置于母尺外沿作环绕运动,这时画出的是花形圈。母尺的内环通常是圆形和椭圆形。
万花尺画出的图案美不胜收,用不同尺寸和形状的子尺或母尺排列组合出来的图案更是多种多样:可独画,也可叠画、接画。
绘制原理
利用数学解析几何中的内旋轮线(hypotrochoid),内旋轮线是追踪附着在围绕半径为 R 的固定的圆内侧滚转的半径为 r 的圆上的一个点得到的转迹线,这个点到内部滚动的圆的中心的距离是d。
繁花曲线规(万花尺,万花规)也是应用之一,大小齿轮的齿数之比,约为最简分数时,其分母就是小齿轮的自转数,分母与分子之和就是图案中的花瓣数。而分子就是小齿轮沿着大齿轮的公转数。
所以,只要掌握这个最简分数,就能知道画出来的图案大概是什么形状的。总而言之,选择不同的齿轮与不同的孔,就可画出细腻、动人的各种曲线,例如玫瑰线、内摆线等等。
理论上通过玄学调参可以生成无数种图形可能。 示例如下:
基本步骤
1、首先我们需要导入画图和数据计算的相关库。
import numpy as np
from numpy import sin, cos
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
2、为了在图片上显示中文,需要先加载Alibaba-PuHuiTi-Medium字体。
wget http://tianchi-media.oss-cn-beijing.aliyuncs.com/DSW/Python/miniproject/01_draw_moon_cake/Alibaba-PuHuiTi-Medium.ttf
3、这里是核心方法,根据数学中内旋轮线(hypotrochoid)参数方程,利用lambd函数生成坐标点:
x = lambda d,r,R,theta: (R-r)*np.cos(theta) + d*np.cos(((R-r)/r)*theta)
y = lambda d,r,R,theta: (R-r)*np.sin(theta) - d*np.sin(((R-r)/r)*theta)
4、接下来我们要画摆线,摆线是月饼边缘的花纹,首先添加相关参数,参数说明见注释: 这个参数是核心,理论上通过玄学调参可以生成无数种可能。可以尝试发挥。例如用for循环遍历 生成渐变动画~
# 转数-内圆旋转次数
revs = 30
# 迭代次数, 即沿绘制路径获取的点。
Niter = 9999
thetas = np.linspace(0,revs*2*np.pi,num=Niter)
d = 2 # 距离
r = 11 # 小圆半径
R = 12 # 大圆半径
5、生成摆线花纹, 可通过color和linewidth参数调整颜色和线宽。
plt.plot(x(d, r, R, thetas), y(d, r, R, thetas), color='orange', linewidth = '4')
6、然后我们再画一个圆,这个圆是月饼的主体部分。
# 画个圆
length = 2.6
theta = np.linspace(0, 2 * np.pi, 100)
x = length * cos(theta)
y = length * sin(theta)
plt.plot(x, y, color='orange', linewidth = '5')
plt.axis('equal')
7.绘制文字,使用fontproperties参数可以使用上面下载的中文字体,因为代码不多,所以把剩余所有代码都写在这里:
import numpy as np
from numpy import sin, cos
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties
x = lambda d,r,R,theta: (R-r)*np.cos(theta) + d*np.cos(((R-r)/r)*theta)
y = lambda d,r,R,theta: (R-r)*np.sin(theta) - d*np.sin(((R-r)/r)*theta)
# 转数-内圆旋转次数
revs = 30
# 迭代次数, 即沿绘制路径获取的点。
Niter = 9999
thetas = np.linspace(0,revs*2*np.pi,num=Niter)
d = 2 # 距离
r = 11 # 小圆半径
R = 12 # 大圆半径
plt.plot(x(d, r, R, thetas), y(d, r, R, thetas), color='orange', linewidth = '4')
length = 2.6
# 画个圆
theta = np.linspace(0, 2 * np.pi, 100)
x = length * cos(theta)
y = length * sin(theta)
plt.plot(x, y, color='orange', linewidth = '5')
plt.axis('equal')
plt.axis('off') # 隐藏坐标系
font_set = FontProperties(fname=r"Alibaba-PuHuiTi-Medium.ttf", size=12)
plt.text(-1.2, -1, '中秋\n快乐', bbox=dict(boxstyle='circle', fc="w", ec='orange', linewidth=4), fontproperties=font_set, fontsize=40, color='orange') ##ec为线条颜色,color为字体颜色,可以自由替换
plt.text(-3, -4, 'Python画月饼,Spaceack与您千里共禅娟', fontproperties=font_set, fontsize=20, color='#aa4a30')
plt.show()
画图软件下载