ბრეზენჰემის ალგორითმი: განსხვავება გადახედვებს შორის

[შეუმოწმებელი ვერსია][შეუმოწმებელი ვერსია]
შიგთავსი ამოიშალა შიგთავსი დაემატა
No edit summary
No edit summary
ხაზი 49:
 
ამ ალგორითმის მთავარი პრობლემა შემდეგში მდგომარეობას: კომპიუტერის მიკროპროცესორი შედარებით ნელია მცოცავ მძიმიან რიცხვებზე(და ზემოთ მოყვანილი მცოცავ მძიმიანი რიცხვების რაციონალური რიცხვების სახით წარმოდგენა e და e(1,0)-სთვის გაცილებით რთულია და ითხოვს ინსტრუქციათა დიდ რაოდენობას); ხოლო მთელ რიცხვებთან მუშაობა უფრო ზუსტ და სწრაფ გამოთვლის საშუალებას მოგვცემდა.
პირველი ხერხი იმაში მდგომარეობს რომ თავიდანვე შეგვიძლია შევცვალოთ e e-0,5-ით, რაც ორი რაციონალური რიცხვის შედარების მაგივრად შესაძლებლობას გვაძლევს შეცდომის ნიშანი შევამოწმოთ, ეს საშუალებას გვაძლევს ზუსტად გავიგოთ რომელი ორი პიქსელია განთავსებული პარალელური მარჯვენა მხარის ქვევით, რომელთა ორდინატები გაიზარდა 0,5-ით და შევცვალოთ ის.
 
'''procédure''' tracerSegment('''entier''' ''x''<sub>1</sub>, '''entier''' ''y''<sub>1</sub>, '''entier''' ''x''<sub>2</sub>, '''entier''' ''y''<sub>2</sub>) '''est'''
ხაზი 132:
''// Le pixel final (x<sub>1</sub>, y<sub>1</sub>) n’est '''pas''' tracé.''
'''fin procédure''' ;
ეს ალგორითმი ოპტიმალურია და საკმარისია იმისათის რომ დავხაზოთ ნებისმიერი დახრილი და დიაგონალური ჰორიზონტალური ვექტორი პირველ ბაიტში, ზრდად სვეტებსა და კოლონებში. ავღნიშნოთ რომ თუ პროგრამირების ენა საშუალებას გვაძლევს ორი ლოკალური გამოცხადებული ცვლადი ''x'' და ''y'' შეიძლება ჩანაცვლებული იყვნენ 'x''<sub>1</sub> და ''y''<sub>1</sub> ცვლადების პარამეტრების გამოყენებით. ეს შემთხვევა ზევითაა განხილული.