Հիմնական նյութ
Մի քանի ձևափոխություն
Այժմ, երբ արդեն դիտարկեցինք տեղափոխության հիմունքները, պտույտները և սանդղումը, արի խոսենք դրանք միասին օգտագործելու, ինչպես նաև այն բարդությունների մասին, որոնք շրջանցեցինք սկզբում:
Հերթականությունը կարևոր է
Մի քանի ձևափոխություններ անելիս դրանց հերթականությունը շատ կարևոր է: Օրինակ՝ ձևափոխությունների պտույտ–տեղափոխություն–մեծացում հերթականությունը նույն արդյունքը չի տա, ինչ որ տեղափոխություն–պտույտ–մեծացում հերթականությունը: Ահա, օրինակ, մի ծրագիր, որը ցույց է տալիս դա.
Հաջորդականությունը կախված է նրանից, թե ինչ արդյունք եսակնկալում: Կարևոր է հիշել, որ մենք շարժում ենք վանդակավոր թուղթը և ոչ թե հենց օբյեկտը, և պետք է գտնել այնպիսի հերթականություն, որը հարմար է մեզ:
Ձևափոխությունների մատրից
Ամեն անգամ պտույտ, տեղափոխություն կամ սանդղում կատարելու համար պահանջվող ինֆորմացիան կուտակվում է թվերի աղյուսակի մեջ: Այս աղյուսակը կամ մատրիցը բաղկացած է ընդամենը մի քանի տողից և սյունակներից, բայց մաթեմատիկական հրաշքների շնորհիվ այն պարունակում է ամբողջ տեղեկատվությունը, որն անհրաժեշտ է այդ գործողությունները կատարելու համար: Ահա թե ինչու
pushMatrix()
-ը և popMatrix()
-ն ունեն այդ բառերն իրենց անվանումների մեջ:Իսկ ի՞նչ են նշանակում անվանման մեջ առկա push և pop բառերը: Դրանք առաջացել են stack կոչվող համակարգչային հասկացությունից, որն աշխատում է ճաշարանում սկուտեղներ բաժանող զսպանակավոր սարքի նման: Երբ ինչ-որ մեկը վերադարձնում է սկուտեղը, դրա ծանրության ներքո մնացած սկուտեղները իջնում են ներքև: Իսկ երբ ինչ-որ մեկը վերցնում է ամենավերևում գտնվող սկուտեղը, ներքևիններն ինքնըստինքյան բարձրանում են վերև:
Նույն կերպ
pushMatrix()
-ը տեղադրում է կոորդինաատային համակարգի ներկայիս կարգավիճակը հիշողության տարածքի ամենավերևում, իսկ popMatrix()
-ը հանում է այդ կարգավիճակը դուրս: Հաջորդ օրինակում pushMatrix()
-ը և popMatrix()
-ը օգտագործվում են, որպեսզի համոզվենք, որ
ամեն անգամ նկարելիս կոորդինատային համակարգը մաքուր է: Բոլոր մյուս օրինակներում այս երկու ֆունկցիաները կանչելու անհրաժեշտություն իրականում չկար, քանի որ դրան հաջորդող ձևափոխություններ չկային: Ամեն դեպքում, սակայն, աղյուսակի կարգավիճակը պահպանելը և վերականգնելը չի խանգարում: Որպես առավել նպատակահարմար եղանակ՝ միշտ օգտագործիր այս ֆունկցիաները ձևափոխություններ կատարելիս: Գոյություն ունի նաև
resetMatrix()
ֆունկցիան, որը վերադարձնում է մատրիցը իր նախնական վիճակին, որը կոչվում է «identity matrix» (մատրիցի ինքնություն), սակայն գրեթե միշտ ավելի նպատակահարմար է օգտագործել push և pop ֆունկցիաները:Ուզո՞ւմ ես սովորել կամ վերհիշել, թե ինչպես են մատրիցներն օգտագործվում հանրահաշվի մեջ: Կարող ես անել դա «Քան» ակադեմիայում կարդալով Մատրիցներ նյութը, իսկ ավելի մանրամասն տեղեկություն կարող ես գտնել Մատրիցների երկրաչափական ձևափոխությունները բաժնում:
Այս հոդվածը Ջ. Դեվիդ Այզենբերգի 2D Transformations-ի սեղմագրված տարբերակն է, որն օգտագործվում է Creative Commons Attribution-NonCommercial-ShareAlike-ի թույլտվության ներքո:
Ուզո՞ւմ ես միանալ խոսակցությանը։
Առայժմ հրապարակումներ չկան։