პრობლემა:
Paint-ის მონაკვეთის ხატვის გაკეთება, ჯერ აჭერ მაუსს, ფიქსირდება ერთი წვერო, მერე
მაუსის მოძრაობისას მონაკვეთიც მოძრაობს რადგან მეორე წვერო არაა დაფიქსირებული და
კლიკით ფიქსირდება მეორე წვეროც.
გავაკეთოთ boolean
ტიპის ცვლადები, რომლებიც შეინახავენ ინფორმაციას იმის შესახებ, დავაფიქსირეთ თუ არა დასაწყისი და საბოლოო წერტილი, ასევე აღვწეროთ მონაკვეთიც, GLine
ტიპის ობიექტი. თავდაპირველად, რა თქმა უნდა, ორივე ცვლადის მნიშნველობაა false
. მაუსზე დაკლიკვის შემთხვევაში, უნდა შევამოწმოთ, რომელი წერტილი დაფიქსირდა. იმ შემთხვევაში თუ საწყისი წერტილისთვის განკუთვნილი ცვლადის startClicked
-ის მნიშვნელობაა false
, ნიშნავს, რომ ახლა ხდება საწყისი წერტილის არჩევა. კლიკის შემთხვევაში კანვასზე დავამატოთ აღწერილი მონაკვეთი საწყისი და საბოლოო ერთი და იმავე კოორდინატებით, კლიკის ადგილზე. ახლა უკვე უნდა ავსახოთ მონაკვეთი, რომელიც იმოძრავებს კურსორთან ერთად. ეს ხდება მხოლოდ იმ შემთხვევაში, როცა საწყისი წერტილი დაფიქსირებულია, ხოლო საბოლოო არა, სწორედ ასეთ დროს mouseMoved
მეთოდში თანდათან ვცვალოთ მონაკვეთის მეორე ბოლოს კოორდინატები. იმ შემთხვევაში თუ კლიკი მოხდა, startClicked
-ის მნიშვნელობაა true
, ხოლო endClicked
-ის მნიშვნელობაა false
, ნიშნავს, რომ ფიქსირდება საბოლოო წერტილი. შესაბამისად შევცვლით ცვლადის მნიშვნელობას და მონაკვეთი გაჩერდება შესაბამის პოზიციაზე mouseMoved
მეთოდში დაწერილი კოდის მიხედვით.