მოდით, უკეთ გავერკვეთ ხატვაში.
რა შეგვიძლია გავაკეთოთ მართკუთხედების გარდა?
შეგვიძლია გავაკეთოთ ოვალები ellipse-ს გამოყენებით,
რაც კიდევ ერთი კომპიუტერული ბრძანებაა.
ბრძანებებისთვის პროგრამირებაში სპეციალური სახელი არსებობს - ფუნქციები.
ამიერიდან "ბრძანების" ნაცვლად სიტყვა "ფუნქცია"-ს გამოვიყენებ.
დავწეროთ ფუნქცია სახელად ellipse, შემდეგ () და ბოლოს ;
არ მუშაობს.
შეტყობინება გვეუბნება, რომ გვაკლია პარამეტრები.
შეგიძლიათ მიხვდეთ რა გვაკლია ამ ფუნქციის rect-თან შედარებით?
როცა ვწერთ ellipse-ს, უნდა მივუთითოთ რიცხვებიც, ისე როგორც rect-ის შემთხვევაში.
ამ რიცხვებს პარამეტრები ეწოდებათ.
ვამბობთ, რომ ფუნქციას გადავცემთ პარამეტრებს
ისინი კი აკონტროლებენ თუ რას იზამს ფუნქცია.
პარამტერების გარეშე პროგრამამ არ იცის სად და რამხელა უნდა იყოს ელიფსი.
გასაგებია თუ რატომ მივიღეთ შეტყობინება.
გადავცეთ ამ ფუნქციას ოთხი პარამეტრი,
რათა გავაკონტროლოთ თუ სად, რა სიმაღლის და რა სიგრძის უნდა დაიხატება ელიფსი.
წინანდელივით, შეგვიძლია ელიფსი ვამოძრაოთ და ზომაშიც ვცვალოთ.
რადგან გავერკვიეთ, დავხაზოთ ელიფსი ზუსტად ფანჯრის შუაში.
ალბათ გინდათ გაიხსენოთ თუ სადაა შუა.
ზედა მარცხენა წერტილი არის ნული, მარჯვენა კი 400.
ზემოდან ქვემოთ დაშორებაც არის 400.
რა იქნება შუა?
პირველი ვარაუდით, უნდა იყოს 400-ის ნახევარი, ანუ 200.
სიმაღლეშიც იგივე, 400-ის ნახევარი ანუ 200.
მოდით დავხატოთ ამ ადგილას, დავწეროთ ellipse ბრძანება,
გადავცეთ პარამეტრები და დიდი ზომის დავხატოთ.
ესეც ასე.
მოდით მართკუთედიც ჩავსვათ.
დავწეროთ rect(200, 200 -- და უფრო მცირე იყოს -- 100, 100);
საინტერესოა, რას გვიჩვენებს ჩვენი ექსპერიმენტი?
როგორც ვხედავთ, ელიფსის შემთხვევაში 200, 200 გვიჩვენებს ცენტრის მდებარეობას,
მართკუთხედისთვის კი ეს განსხვავებულია, და გვეუბნება,
თუ სად უნდა მოვათავსოთ მართკუთხედის მარცხენა ზედა წერტილი.
ამისი ცოდნა აუცილებელია ფიგურების დახატვისას.
ახლა გადავიდეთ მონაკვეთებზე.
მონაკვეთის ფუნქციას ეწოდება line.
შეგვიძლია ისევ გადავცეთ პარამეტრები,
თუმცა, მონაკვეთს ზომა არ აქვს როგორც მართკუთხედს არა?
მაშინ რა რიცხვები უნდა მივუთითოთ?
პირველი და მეორე პარამეტრები იგივე იქნება,
რა სიმაღლესა და სიგანეზე უნდა დაიწყოს მონაკვეთი,
პარამეტრების მეორე წყვილი კი --
-- უკაცრავად, მეორე წყვილი, ანუ 90 და 200 --
გვიჩვენებს თუ რა სიმაღლესა და სიგანაზე დასრულდება მონაკვეთი.
რადგან გვესმის თუ ეს როგორ მუშაობს,
მოდით ახლა ვნახოთ რაღაც, რაც თავიდან უცნაური იქნება.
რა მოხდება თუ მართკუთხედს ზედა მარცხენა კუთხეში დავიწყებ?
-- დიდი იყოს --
შეგვიძლია უფრო გავზარდოთ, მაგრამ ალბათ ზედმეტი იქნება.
როგორც ხედავთ, ნელნელა ელიფსი გაქრობას იწყებს.
შეგვიძლია მთლიანად გავაქროთ.
საინტერესოა, სად წავიდა?
საქმე ისაა, რომ კომპიუტერი ფიგურებს თანმიმდევრულად ხატავს.
ჯერ დახატა ელიფსი, შემდეგ კი ზემოდან მართკუთხედი დაახატა.
ახლა კი დაემატა მონაკვეთიც.
ელიფსი ისევ თავის ადგილასაა, უბრალოდ ფიგურებს ქვემოთ.
ეს მნიშვნელოვანია გვახსოვდეს.
რა მოხდებოდა ჯერ რომ მონაკვეთი დაგვეხაზა?
მთლიანად ვერ დავინახავდით, ასე არაა?
შეიძლება ეს თქვენს პროგრამაში მოხდეს და გაგიკვირდეთ.
სინამდვილეში ნახატი თავის ადგილზეა, მაგრამ
ამჯერად მას ელიფსი და მართკუთხედი ფარავენ.
შეგვიძლია ვაკონტროლოთ რომელი ფიგურა რომლის თავზე დაიხატოს,
ამისთვის საკმარისია ფუნქციების თანმიმდევრობის კონტროლი.
სანამ დავასრულებთ, მინდა რამდენიმე ტექნიკური ტერმინი გაგაცნოთ.
ალბათ როგორც მათემატიკაში გისწავლიათ,
შეგვიძლია ასო x გამოვიყენოთ იმისთვის, რომ აღვნიშნოთ სიგანე
და y, რომ აღვნიშნოთ სიმაღლე.
შესაძლოა ეს ცოტა უცნაურად ჟღერს თუ არ მიჩვენულხართ,
მაგრამ უფრო მარტივია ასე თქმა: რამდენად მარჯვნივ და რამდენად ქვემოთ"
ჩვენი ელიფსის პირველი ორი პარამეტრი, მაგალითად,
გვეუბნება, რომ x უდრის 200-ს, y კი - 229-ს.
ესეც ასე. იგივეა რაც "რამდენად მარჯვნივ" და "რამდენად ქვემოთ".
მეორე საკმაოდ კარგი კითხვა ასეთია,
რა ერთეულებს ვიყენებდით მთელი ამ დროის განმავლობაში?
200 სანტიმეტრი? ინჩი? იქნებ მილი?
ჩვენ ვიყენებთ ერთეულებს, სახელად "პიქსელი".
პიქსელი არის პატარა წერტილი თქვენს ეკრანზე.
ეს სახატავი ტილო სიგანეში 400 პიქსელია,
ამიტომ ვამბობთ რომ მარცხენა კუთხე ნულია, მარჯვენა კი 400,
ანუ 400 პიქსელი.
იგივენაირად, როცა ვამბობთ 200-ს, ვგულისხმობთ 200 პიქსელს.
ალბათ გასაგებია.
ძალიან კარგი!
ახლა უკვე ყველაფერი ვიცით line, ellipse და line-სა და მათ პარამეტრებზე.
მართალია სულ ახლახან დავიწყეთ სწავლა, მაგრამ თუ იმუშავებთ, მარტივად მიეჩვევით.