2016-05-26 23 views
1

我最近使用圖形封裝在python中的量表。如何在量表中旋轉刻度盤?大量使用python

通過教程和模板here, 後,我不知道是否有一種方法來旋轉給定角度值的「撥號」或「針」?

有人建議我使用css:變換做竅門,但仍然很難知道如何將CSS應用於劇情劇本。

簡短的代碼會很棒。 預先感謝您。

回答

1

這個問題有點晚。我對這個問題的解決方案,但它仍然需要工作:

我是用在plotly教程給出的錶盤SVG路徑,即

M 0.235 0.5 L 0.24 0.65 L 0.245 0.5 Z

中心點(0.24,0.65)觸及的弓儀表內部的圓圈。因此,拱是以(0.24,0.5)爲中心並且半徑爲0.15的圓。

鑑於弧度的角度theta,中心(h,k),並表示極圍成一圈,我們可以很容易地獲得在該度圓上的點笛卡爾座標如下:

x = h + r * cos(theta) 
y = k + r * sin(theta) 

我們可以然後簡單地將我們的輸入映射到它應該在儀表上的預期角度,並從那裏計算出xy。對於我的Python實現,使用math庫,這將轉換爲以下:

h = 0.24 
k = 0.5 
r = 0.15 
# Map my_raw_value to degrees. my_raw_value is between 0 and 300 
theta = my_raw_value * 180/300 
# and then into radians 
theta = theta * math.pi/180 
x = h + r*math.cos(theta) 
y = k + r*math.sin(theta) 
path = 'M 0.235 0.5 L ' + str(x) + ' ' + str(y) + ' L 0.245 0.5 Z' 

這將動態生成你的形狀三角形路徑和大致設定在那裏應該是錶盤的長邊。理想情況下,我們希望旋轉整個事物,因爲在此實現中,三角形的底部保持靜止,從而在圖形的極限上產生一條直線。 您需要將路徑上的所有三個點乘以旋轉矩陣以獲得確切的座標。