編輯點評:萬花尺畫圖軟件
小編今天給大家帶來的是萬花尺畫圖軟件,專門為兒童設計的智能玩具和設計工具包括套裝工具和齒輪工具。結合齒輪讓你畫各種美麗的模式。兒童空間圖形想象力、色彩搭配能力和審美感知能力的培養,還能開發孩子的大腦,感興趣的就快來下載吧
游戲玩法
在作畫過程中,兩者內外齒要始終靠合。完成后紙上便會留下一個不可思議的美麗花朵。
子尺上小孔的極小位移會引起圖案類型的極大變化。
作畫時,將子尺內置于母尺內環之中,輪牙鑲嵌,筆頭插在子尺的小孔中,用筆帶動子尺順著母尺的內沿齒輪反復作圓周運動。
子尺形狀的變化有很多,除了圓形,還有橢圓形,弧邊的三角形、十字形、梅花形、方形、多邊形等等。
游戲優勢
簡單易用,這款操作學習軟件孩子在手機上也是可以輕松來操作完成的,就是這樣的簡單;
自動繪畫,孩子是可以自己在手機上操作的,非常的簡單,一點也不難操作。
孩子們可以在自己的手機上來操作,能夠自定義的在上面進行繪畫操作完成;
游戲特點
萬花尺由母尺和子尺兩部分組成。常見的母尺是內環形齒輪,子尺是帶多孔的外環形齒輪。作畫時,將子尺內置于母尺內環之中,輪牙鑲嵌,筆頭插在子尺的小孔中,
用筆帶動子尺順著母尺的內沿齒輪反復作圓周運動。在作畫過程中,兩者內外齒要始終靠合。完成后紙上便會留下一個不可思議的美麗花朵。子尺上小孔的極小位移會引起圖案類型的極大變化。
子尺形狀的變化有很多,除了圓形,還有橢圓形,弧邊的三角形、十字形、梅花形、方形、多邊形等等。母尺的變化不大,但有些母尺的外沿也帶齒輪,把子尺置于母尺外沿作環繞運動,這時畫出的是花形圈。母尺的內環通常是圓形和橢圓形。
萬花尺畫出的圖案美不勝收,用不同尺寸和形狀的子尺或母尺排列組合出來的圖案更是多種多樣:可獨畫,也可疊畫、接畫。
相關新聞資訊
繪制原理
利用數學解析幾何中的內旋輪線(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()
熱門評論
最新評論