完成的 OpenShift 對應繪圖連結為: http://cdw2bg5-40323206.rhcloud.com/bg5/scrum2_task40323206
在班級倉儲cdw2的master建立.leo進行英文字母的繪製(會自動產生一個.py),建立好後可以在cmd輸入python wsgi.py的指令,就可以在近端開啟http://localhost:5000/bg組別/scrum第幾組員_task學號,可以檢視程式碼畫出的英文字母。
我是以圓點開始畫,在依照字母排列的位置進行位移。
字母繪製程式說明:
定義座標軸線
cgo.drawAxes(0, 240, 0, 240)
軸線&數字顏色
"strokeColor":"顏色代碼"
"fillColor": "顏色代碼"
◎可參閱色碼表
https://www.toodoo.com/db/color.html
TickInterval為LabelInterval內再分割時間間距
LabelInterval為座標軸上每(多少)單位為一等分
"xTickInterval": 20
"xLabelInterval": 20
"yTickInterval": 20
"yLabelInterval": 20
旋轉必須要針對相對中心 rot not working yet
chamber =
"M -6.8397, -1.4894 \
A 7, 7, 0, 1, 0, 6.8397, -1.4894 \
A 40, 40, 0, 0, 1, 6.8397, -18.511 \
A 7, 7, 0, 1, 0, -6.8397, -18.511 \
A 40, 40, 0, 0, 1, -6.8397, -1.4894 z"
A, (橢圓經中心X軸向長), (橢圓經中心Y軸向長) , 0 , (大圓/小圓), (計算出的切點座標) , (計算出的切點座標)
◎計算公式:
from sympy import
§center ot radius 40
x1 = Symbol('x1')
y1 = Symbol('y1')
§upper tangent point
x2 = Symbol('x2')
y2 = Symbol('y2')
§lower tangent point
x3 = Symbol('x3')
y3 = Symbol('y3')
answer = solve([(x2-0)2 + (y2-0)2 - 7*7, (x1-x2)2+(y1-y2)2 -402, (x1-x3)2+(y1-y3)2 -402, (x1)2+(y1)2 -472, \
(x1)2+(y1+20)2 -472, x2 -x3], [x1, y1, x2, y2, x3, y3])
group = 1
for i in answer:
try:
g.es("group", group, ":")
except:
print("group", group, ":")
for j in i:
try:
g.es(j.evalf(5))
except:
print(j.evalf(5))
group += 1
建立第一鍊條,會直接複製鍊條cmbr
basic1 = cmbr.dup()
角度設定
basic1.rotate(90) →逆時針90°
定位座標
basic1.translate(x, y)
cmbr.appendPath(basic1)
◎如何位移 首先必須瞭解除了初始鍊條,其他鍊條都只是複製初始鍊條來的,所以所有鍊條一開始的設定都一樣。 如果旋轉指令rotate不為0,表示有旋轉,是以座標原點再進行旋轉! 換句話說,如果你的座標不是訂在原點,那轉動的位移會很大! 那先在圓心完成字母後要怎麼移動?
1.如果我們要將字母X位移160,先將初始鍊條X位移160
cmbr.translate(0, 0)→cmbr.translate(160, 0)
2.這是第二鍊條原本的位置
basic2 = cmbr.dup()
basic2.rotate(120)
basic2.translate(20math.cos(150deg), 20math.sin(150deg))
3.我們再定義完後先將鍊條移回原點再設定
basic2 = cmbr.dup()
basic2.translate(-160, 0)
basic2.rotate(120)
basic2.translate(20math.cos(150deg), 20math.sin(150deg))
4.最後再移到想要與初始鍊條對其的位置
basic2 = cmbr.dup()
basic2.translate(-160, 0)
basic2.rotate(120)
basic2.translate(20math.cos(150deg), 20math.sin(150deg))
basic2.translate(160, 0)
以字母C作為範例
Openshift的對應建立
◎可參考課程網頁
http://chiamingyen.github.io/kmolab/blog/ren-wu-yi-2d-xie-tong-hui-tu.html
1.建立新的Application,並在Source Code輸入https://github.com/2015fallhw/cdw2.git
2.建立鑰匙
3.git clone 後修改除了.git以外的檔案
4.建議直接複製github的master,操作較簡易,但無用檔案較多
5.push完後點選openshift的連結(會出現猜數字)在網址後輸入你的畫布位置&名稱
EX: /bg5/scrum2_task40323206
期中心得
這次的任務做了半個學期,其實了解鍊條排列的程式後做起來就會很輕鬆很有成就感,但重點我認為並不是英文字母,而是班級同學之間的協同。
其實cmd裡面的指令不外乎就是:
1.git clone
2.git checkout master /gh-pages
3.git add -A
4.git commit -m ""
5.git push origin gh-pages
那還有甚麼困難?困難的地方就在第一步和最後一步,大家雖然是fork老師fork組長產生了cdw2的倉儲,表面上看起來好像是獨立的,可是並非如此!
因為大家不了解協同的意義和運作方式,所以協同者(組長)才會這麼累,所以班級倉儲才會故障!老實說我覺得除了那些有心去了解,和維護倉儲的同學,其他人根本不知道"協同"的意義在哪?
對他們而言,不過就是完成鍊條的英文字母罷了,所以我覺得這塊還有待加強,如果,你真的想知道這堂課的意義,你必須要:
1.在乎你的組員(不要只顧自己好,要分享)
2.了解你在組別裡的工作(大家要分工)
3.尊重其他組別(可以互相參考資訊,但不要"偷竊")
4.隨時注意整個環境的變動(記得改版更新)
5.在乎這個班級(不要忘了倉儲是"年級"共用的,但我就不先說隔壁班了...)
Comments
comments powered by Disqus