-
დავუბრუნდეთ ვინსტონს.
-
ახლა უკვე ორივე, x და y კოორდინატები
გვაქვს ვინსტონის მდებარეობისთვის.
-
ახლა უკვე შეგვიძლია ვინსტონი
ზემოთ-ქვემოთ ვახტუნაოთ
-
ძალიან კარგი.
-
ვნახოთ რას აკეთებს
ეს კოდი სანამ განვაგრძობთ.
-
თავში გვაქვს x და y ცვლადები,
-
რომლებიც ვინსტონის
ცენტრის მდებარეობას ინახავენ,
-
რასაც ამ ხაზში, ელიფსის
დახატვისას ვიყენებთ.
-
შემდეგ, ვათავსებთ თვალებსა
და პირს სახის ცენტრის მიხედვით.
-
ვაკლებთ ან ვუმატებთ
x-ს და y-ს, რათა დავრწმუნდეთ,
-
რომ თვალები ნამდვილად
50 და 100 პიქსელითაა დაშორებული.
-
მაგალითად, პირი სახის
ცენტრიდან 50 პიქსელით მარჯვნივაა
-
და ისევ სახის
ცენტრიდან 40 პიქსელით ქვევით.
-
ვნახოთ კიდევ რისი შენახვა
შეგვიძლია ცვლადების სახით.
-
ამისთვის, კოდის თითოეულ ხაზს გავარჩევ
-
და მოვძებნი ეგრეთ წოდებულ
"მყარად კოდირებულ" რიცხვებს.
-
ეს უბრალოდ რიცხვებია.
-
არც ცვლადები არიან,
არც მათზე დამოკიდებული.
-
ვნახოთ, აქ ელიფსის გამოძახებისას,
-
სიგრძე და სიგანე 300 და 300 გვაქვს.
-
ამის მაგივრად შეგვიძლია
შევქმნათ ცვლადი faceSize.
-
ესეიგი faceSize = 300.
ახლა შეგვიძლია faceSize აქ ჩავსვათ
-
და ის მნიშვნელობად 300-ს გადასცემს.
-
ძალიან კარგი, განვაგრძოთ.
-
აქ ყველაფერი იყენებს
ან x-ს, ან y-ს, ან faceSize-ს,
-
თუმცა, აქ პირისთვის ისევ 150
გვაქვს სიგრძისთვისაც და სიგანისთვისაც.
-
შეგვიძლია შევქმნათ ცვლადი
mouthSize და გავუტოლოთ 150-ს.
-
ესეიგი აქ mouthSize-ს ჩავწერთ,
რომელიც 150-ს გადასცემს მნიშვნელობად,
-
რადგან ცვლადი ახლა ამას უდრის.
-
რადგან ასე მოვიქეცით, ახლა მარტივად
შეგვიძლია შევცვალოთ faceSize,
-
ასევე მარტივად შეიცვლება
mouthSize, შეგვიძლია ასე ვამოძრავოთ
-
და ცხადია, შეგვიძლია ისევ ვცვალოთ eyeSize.
-
ძალიან კარგი.
-
მაგრამ აქ რაღაც არ მომწონს.
faceSize-ს ცვლილებისას,
-
მინდა ყველაფერი
faceSize-ს მიხედვით იცვლებოდეს,
-
თუ სახე ასე დავაპატარავე, მინდა
თვალები და პირიც ასევე დაპატარავდეს.
-
თუ faceSize გავანახევრე,
-
თვალებისა და პირის
ზომებიც უნდა განახევრდეს.
-
სხვამხრივ, სასაცილო სურათს მივიღებთ,
-
რადგან თვალები და პირი
ასეთი სახისთვის ზედმეტად დიდია,
-
ერთმანეთთან დაკავშირებულიც აღარ არიან.
-
ესეიგი გვინდა როგორმე mouthSize და
eyeSize დამოკიდებული გავხადოთ faceSize-ზე.
-
დავუბრუნოთ საწყის მდგომარეობას.
-
ამისი გაკეთება ასე შეგვიძლია:
-
ეს ცვლადები faceSize-დან
უნდა გამომდინარეობდეს,
-
ანუ, მაგალითად შეგვიძლია
დავწეროთ: mouthSize = faceSize/2;
-
ანუ ვიყენებთ სახის ზომის ნაწილს.
-
მივუთითებთ, რომ ამ ზომის ნახევარი აიღოს --
-
-- თუ წილადები თქვენთვის უცხოა,
-
Khan Academy-ზე უამრავი ვიდეოა, რომელიც
გიჩვენებთ თუ რა არის წილადები --
-
ახლა eyeSize შევცვალოთ.
eyeSize დაახლოებით faceSize/4 არის.
-
იდეალური არაა, მაგრამ საკმაოდ კარგია.
-
-- შვიდი იყოს.. ასე ჯობს --
-
თუ თავიდან წილადი შეგეშალათ,
შეგიძლიათ მოგვიანებით შეასწოროთ.
-
ითამაშეთ ამ რიცხვით
სანამ რამე კარგად არ გამოვა.
-
თუ ახლა სახის ზომებს შევცვლით,
-
თვალებიც და პირიც მასთან
ერთად შეიცვლება ზომაში.
-
ძალიან მაგარია..
-
მაგრამ რაღაც მაინც არასწორია.
-
როცა ზომები ძალიან მცირდება,
თვალები და პირი შორდება სახეს.
-
ზომები სწორადაა, მაგრამ
პრობლემაა დაშორება სახიდან.
-
აქ ასეთი რამ ხდება,
-
ელიფსებისთვის მდებარეობების მინიჭებისას,
-
გვაქვს x - 50 და y - 50
და შემდეგ x + 100 და y - 60,
-
ესეიგი სახის ზომა 50 პიქსელიც რომ იყოს,
-
თვალი მაინც 50 პიქსელით
მარცხნივ იქნება ცენტრიდან,
-
რაც გამოიწვევს მის სახიდან მოშორებას.
-
ესეიგი გვჭირდება რომ 50-ის და 100-ის
ნაცვლადაც faceSize-ს ნაწილები გვქონდეს.
-
მაშინ, როცა faceSize შეიცვლება,
ის თავისმხრივ შეცვლის
-
პირისა და თვალების
დაშორებას სახის ცენტრიდან.
-
მარცხენა თვალის მაგალითზე
გიჩვენებთ რას ვგულისხმობ.
-
x მინუს 50 პიქსელი ნიშნავს სახის
ცენტრიდან 50 პიქსელით მარცნივ ყოფნას.
-
ჩვენ წილადის გამოყენება გვინდა,
ამიტომ მოდით ავიღოთ faceSize/6.
-
ანუ სახის ზომის მეექვსედი.
-
ძალიან კარგი, 50-იც
შევცვალოთ faceSize/6-ით.
-
ახლა თუ შევცვლით ზომებს,
-
მარცხენა თვალი კარგად იქნება მოთავსებული.
-
-- მშვენიერი, თვალია
ვინსტონ! მშვენიერი თვალი.. --
-
მეორე თვალსაც სჭირდება ცოტა დახმარება.
-
100-ის მაგივრად დავწეროთ
faceSize/3, ანუ სახის ზომის მესამედი,
-
60-ს ადგილას კი იყოს
სახის ზომის მეხუთედი, ანუ faceSize/5.
-
ძალიან კარგი,
შევცვალოთ ზომა... მშვენიერია.
-
ახლა მხოლოდ პირთან გვაქვს პრობლემა.
-
გადავიდეთ პირზე.
-
ეს დაახლოებით faceSize/6
იქნება, ეს კი faceSize/7 იყოს.
-
კარგი, ახლა ყველაფერი
პროპორციულადაა. შევამოწმოთ.
-
ახლა შეგვიძლია ვინსტონი
ძალიან პატარა გავხადოთ,
-
თვალები და პირი კი
მაინც მის სახეზე დარჩება!
-
დარწმუნებული ვარ ვინსტონი
ამით ძალიან ბედნიერი უნდა იყოს.
-
გავიმეოროთ რა გავაკეთეთ.
-
თავიდან, გვაქვს გარკვეული ცვლადები.
-
ვიწყებთ ცვლადით, რომელიც
უბრალოდ რიცხვ 200-ს ინახავს.
-
შემდეგ ვქმნით
mouthSize და eyeSize ცვლადებს
-
და ვხდით მათ ზემოთა რიცხვზე დამოკიდებულს.
-
ანუ, თუ მაგალითად faceSize არის 200,
-
mouthSize იქნება 100,
-
მაგრამ თუ faceSize 300 გახდა,
-
mouthSize უცებ 150 გახდება.
-
ესეიგი ყველაფერი პროპორციულად იცვლება.
-
შემდეგ, ქვემოთ, ვითვლით თუ
როგორი უნდა იყოს დაშორებები,
-
რისთვისაც ისევ წილადებს ვიყენებთ,
-
რადგან გვინდა, რომ დაშორებებიც სახის
ზომის პროპორციულად იცვლებოდეს.
-
ფაქტობრივად, გვინდა რომ მხოლოდ ამ
ერთ ცვლადს ჰქონდეს გავლენა ყველაფერზე.
-
ასეთი რაღაცების კეთება
ცვალდებიან გამოსახულებებში შეგვიძლია.
-
რადგან გავიგეთ თუ როგორ შეიძლება ცვლადები
სხვა ცვლადებზე იყონ დამოკიდებული,
-
ძალიან ბევრი რამ
შეგვიძლია ჩვენს პროგრამებში.
-
მოდით აღვნიშნოთ და
ვინსტონი ძალიან გავზარდოთ!