從頭學繪畫 第05節 計算函式

2021-07-23 09:11:11 字數 4258 閱讀 5751

#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,工程師阿偉 說 你看 人叫板老師 舉的這個小明...