algorithm for filling triangle - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

algorithm for filling triangle


Dr__MIKO

Recommended Posts

אלגוריתם פשוט

לבנות שני מערכים חד ממדים.

1) לחפש את הסגמנט בעל DELTAY (מהקצה אחד לקצה השני הכי גדול בציר הY) לשים אותו ב מערך הראשון את הקו (שזה כל הנקדות שיוצרים את הקו)

2) המערך השני את הסגמנטים הנותרים.

3) לעבור על המערך ולמתוח קו מהמערך הראשון לשני ..שני המערכים מכילים נקודות והקו שאתה מיצר הוא מאוזן לחלוטים.

קישור לתוכן
שתף באתרים אחרים

יש לך 3 קודקודים A B C

אתה ממי אותם לפי Y כך ש A<B<C

ואז אתה מחקל את המשולש ל 2 משולשים ABD ו BDC (כאשר D נמצאת באותו גובה (Y) כמו B)

עבור כל אחת מהצלעות ABC אתה מחשב הפרש DX והפשר DY. ואז אתה משתמש בנוסחא של קו ישר x = k*y + b

b = X התחלתי.

y = Y נוכחי

k = שיפוע.

כך תמצא שתי נקודות x1,x2 ואחרי זה אתה פשוט מצייר קו מאוזן הנקודת ה Y שלו היא y ונקודות ה X הן x1 ו x2.

אני ידוע שאני לא יודע להסביר מקווה שהבנת, אם לא אוכל לנסות לפרט יותר.

קישור לתוכן
שתף באתרים אחרים

midpoint?

אחלה דבר אם אני רוצה לעבור בגרות אבל לא הכי שימושי במקרה הזה...

masterdk הרעיון שלך טוב אבל בשביל להוציא מנוסחת קו ישר שיפוע אני חייב להשתמש בחילוק שיעשה לי צרות... חלוקה באפס...

האמת זה היה הדבר הראשון שניסיתי ומייד ירדתי מזה.

מה שניסיתי היה בערך מה ש-GSM הציע אבל היו לי כמה חורים ממש ממש מעצבנים אז שלחתי את ההודעה.

היום חשבתי על זה עוד קצת והגעתי למסקנה שכל מה שהיה חסר לי זה פרוצדורה נוספת לציור קו שיכולה לקבל מספרים לא שלמים. באלגוריתם הקודם הכל התעגל אוטומאטית וכך נוצרו כמה חורים.

אגב עובד מעולה :xyxthumbs:

קישור לתוכן
שתף באתרים אחרים

midpoint?

אחלה דבר אם אני רוצה לעבור בגרות אבל לא הכי שימושי במקרה הזה...

נראה לי שאתה מבלבל עם אלגוריתם אחר לפתרון משוואות.

אלגוריתם midpoint (נקרא גם ברסנהאם) הוא בדיוק אלגוריתם לאפרוקסימציה של קוים ישרים על פיקסלים בעזרת במספרים שלמים בלבד.

אופס, שכחתי לינק.

קישור לתוכן
שתף באתרים אחרים

midpoint?

אחלה דבר אם אני רוצה לעבור בגרות אבל לא הכי שימושי במקרה הזה...

masterdk הרעיון שלך טוב אבל בשביל להוציא מנוסחת קו ישר שיפוע אני חייב להשתמש בחילוק שיעשה לי צרות... חלוקה באפס...

האמת זה היה הדבר הראשון שניסיתי ומייד ירדתי מזה.

מה שניסיתי היה בערך מה ש-GSM הציע אבל היו לי כמה חורים ממש ממש מעצבנים אז שלחתי את ההודעה.

היום חשבתי על זה עוד קצת והגעתי למסקנה שכל מה שהיה חסר לי זה פרוצדורה נוספת לציור קו שיכולה לקבל מספרים לא שלמים. באלגוריתם הקודם הכל התעגל אוטומאטית וכך נוצרו כמה חורים.

אגב עובד מעולה :xyxthumbs:

מה הבעיה.. אם A.Y == B.Y תעשה שההפרש ביניהם יהיה 1, ואז אתה לא מחלק ב 0 אלה ב 1.

האלגוריתם הזה מתאים הכי טוב וגם דיי מהיר.

אלגוריתם ברסינהם הוא טוב כשאתה מצייר קווים עקומים, במקרה של מילוי משולשים אתה מצייר רק קווים מאוזנים.

קישור לתוכן
שתף באתרים אחרים

הפתרון של masterDK יותר טוב מכיוון שהוא לא מצריך מערכי עזר.

גם בפתרון של GSM יכול ליהיות חילוק באפס כשמציירים את הקווים (קו מאונך).

אם האולגוריתם לא מתאים למקרי הקצה תעשה if-ים לאותם מקרים.

קישור לתוכן
שתף באתרים אחרים

במקום נוסחת קו ישר השתמשתי בוקטורים. בלי חילוק, בלי הרבה בלאגן ובלי מערכים.

קראתי את הקישור ששלחת אבל כל מה שהאלגוריתם (המעולה אגב) שלו עושה זה למצוא את כל הנקודות על קו בין שתי נקודות נתונות... אפשר לעשות את זה בעוד מליון דרכים וזה לא מה ששאלתי, רק צעד ראשון בתשובה.

וחלוקה באפס מתרחשת כאשר A.X=B.X או כל שיעורי X של שתי נקודות שאתה מחפש ולא Y.

בכל מקרה הבעיה כבר ניפתרה...

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...