#upbody 上身長 -- 指脖底到大腿頂
upbody = round((height*75/160)-300);
#大腿bigleg = round((height-300-upbody)*40/85);
#小腿smallleg = round(height-300-upbody-bigleg);
#大臂bigarm = round((upbody*55/45)*0.6);
#小臂smallarm = round(bigarm*0.67);
#手掌halm = 100;
#腳掌foot = 150;
#旋轉,所有旋轉都分xy平面角度/yz平面角度
halm_rot_1 = [0, 60];
halm_rot_2 = [0, 150];
smallarm_rot_1 = [0, 30];
smallarm_rot_2 = [0, 160];
smallarm_rot_3 = [0, 220];
bigarm_rot_1 = [0, 120];
bigarm_rot_2 = [0, 180];
foot_rot_1 = [0, 60];
root_rot_2 = [0, 30];
smallleg_rot_1 = [0, 160]
bigleg_rot_1 = [0, 180];
bigleg_rot_2 = [0, 150];
bigleg_rot_3 = [0, 90];
#旋轉, 左肢角度取正值,右肢腳度取負值
neckrot = 90;
lbigarm = 30; #取值範圍 20 -> 160
rbigarm = -30; #取值範圍 -20 -> -160
lsmallarm = -10;
rsmallarm = 10;
lbigleg = 130; #取值範圍 -10 -> -120
rbigleg = -130; #取值範圍 10 -> 120
lsmallleg = -60;
rsmallleg = 60;
lhalm = 160;
rhalm = -160;
lfoot = 30;
rfoot = -30;
upbodycurverate = 0;
neckendangle = -90 / 180 * math.pi;
midbodyangle = -90 / 180 * math.pi;
#長度投影係數
proj_lbigarm = 1 * cos_(60);
proj_lsmallarm = 1 * cos_(60);
proj_lhalm = 1;
proj_rbigarm = 1 * cos_(60);
proj_rsmallarm = 1 * cos_(60);
proj_rhalm = 1;
proj_lbigleg = 1 * cos_(5);
proj_lsmallleg = 1 * cos_(30);
proj_lfoot = 1 * cos_(15);
proj_rbigleg = 1 * cos_(5);
proj_rsmallleg = 1 * cos_(30);
proj_rfoot = 1 * cos_(15);
#長度lbigarm_len = round(bigarm * proj_lbigarm);
rbigarm_len = round(bigarm * proj_rbigarm);
lsmallarm_len = round(smallarm * proj_lsmallarm);
rsmallarm_len = round(smallarm * proj_rsmallarm);
lhalm_len = round(halm * proj_lhalm);
rhalm_len = round(halm * proj_rhalm);
lbigleg_len = round(bigleg * proj_lbigleg);
rbigleg_len = round(bigleg * proj_rbigleg);
lsmallleg_len = round(smallleg * proj_lsmallleg);
rsmallleg_len = round(smallleg * proj_rsmallleg);
lfoot_len = round(foot * proj_lfoot);
rfoot_len = round(foot * proj_rfoot);
#四肢路徑
a = sketch();
a.curve(314, -1/100); #曲率半徑10cm
a.addangle(neckrot);
a.curve(100, 0);
a.startangle = neckendangle;
a.addangle(rbigarm);
a.curve(rbigarm_len);
a.addangle(rsmallarm);
a.curve(rsmallarm_len);
a.addangle(rhalm);
a.curve(rhalm_len);
b = sketch();
b.addangle(180);
b.curve(314, 1/100); #逆時針半圓
b.addangle(-180);
b.startangle = neckendangle;
b.curve(100, 0);
b.addangle(90-neckrot);
b.addangle(lbigarm);
b.curve(lbigarm_len);
b.addangle(lsmallarm);
b.curve(lsmallarm_len);
b.addangle(lhalm);
b.curve(lhalm_len);
c = sketch();
c.curve(314, -1/100); #曲率半徑10cm
c.addangle(neckrot);
c.curve(100, 0);
c.startangle = neckendangle;
c.curve(upbody, upbodycurverate);
c.startangle = midbodyangle;
c.addangle(rbigleg);
c.curve(rbigleg_len, 0);
c.addangle(rsmallleg);
c.curve(rsmallleg_len, 0);
c.addangle(rfoot);
c.curve(rfoot_len);
d = sketch();
d.curve(314, -1/100); #逆時針半圓
d.addangle(180); #先轉半圈
d.addangle(neckrot);
d.addangle(-180); #再退回去
d.curve(100, 0);
d.startangle = neckendangle;
d.curve(upbody, upbodycurverate);
d.startangle = midbodyangle;
d.addangle(lbigleg);
d.curve(lbigleg_len, 0);
d.addangle(lsmallleg);
d.curve(lsmallleg_len, 0);
d.addangle(lfoot);
d.curve(lfoot_len);
print(res);
if __name__ == '__main__':
person();
#本節到此結束,欲知後事如何,請看下回分解。
從頭學繪畫 第25節 基本姿式 坐勢
坐式 1 旋轉,左肢角度取正值,右肢腳度取負值 neckrot 135 往左斜從90度減角,往右加角 左側取正值,右側取負值 upbodycurverate 1 500 負y軸為 90,第四象限為0 90,其餘類推 neckendangle 60 180 math.pi midbodyangle 9...
從頭學數學 第52節 面積
劇情提要 機器小偉 在 工程師阿偉 的陪同下進入練氣期第六層 的修煉,這次要修煉的目標是 面積 正劇開始 星曆2016年01月20日 11 24 34,銀河系厄爾斯星球中華帝國江南行省。工程師阿偉 正在和 機器小偉 一起研究面積 人叫板老師 讓小偉去指出圖形的輪廓,並填充上顏色,但小偉做得不是很好。...
從頭學數學 第08節 認識鐘錶
劇情提要 機器小偉 在 工程師阿偉 的陪同下進行著修煉,本節的主題是 認識鐘錶 正劇開始 星曆2015年12月19日 14 59 09,銀河系厄爾斯星球中華帝國江南行省。工程師阿偉 正在和小偉一起認識著鐘錶。星曆2015年12月19日 15 00 46,工程師阿偉 說 你看 人叫板老師 舉的這個小明...