עבור לתוכן

עזרה עם אלגוריתם על תמונה.

Featured Replies

פורסם

שלום חברה.

אני אגש ישר לבעיה:

יש לי תמונה. אני מסמן עליה פוליגון (רצף נקודות במרחב שמתחברות בשרשרת).

אני רוצה לרוץ על כל הפיקסלים על התמונה, שנמצאים בתוך הפוליגון.

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

e.graphics.drawpoligon() , כי היא בעצם צובעת את כל הפיקסלים שנמצאים בתוך התמונה.

אני צריך כיוון בנושא.

תודה!

אודי.

פורסם

אתה צריך אלגוריתם ל-rasterization. זה נקרא גם scan line conversion.

למעשה אתה צריך "לצייר" את הפוליגון.

זה נושא מאוד מאוד רחב ועמוק, אבל הבסיס הוא לא ממש מסובך, בעיקר אם מדובר על פוליגון קמור (convex).

חיפוש באינטרנט של polygon rendering יניב מאות תוצאות לדוגמא:

http://www.angelfire.com/linux/myp/ConvexPolRas/ConvexPolRas.html

http://gameprogrammer.com/5-poly.html

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

בהצלחה.

פורסם
  • מחבר

תודה.

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

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

לפי מה שאני מבין ממך, אני אתחיל לקרוא על scan line conversion. נראה איך ילך :smile1:

תודה רבה! :xyxthumbs:

עריכה:

חשבתי על דרך לקצר תהליכים :)

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

המחיר יהיה הרבה יותר גבוה , גם מבחינת זיכרון וגם מבחינת עיבוד.

  • 3 שבועות מאוחר יותר...
פורסם

אפשר לייעל את העניין.

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

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

הכל תלוי בכמה אתה "לחוץ" על משאבים. אם אתה באמת לחוץ, אז הקיצור דרך שבחרת הוא לא מומלץ ביותר ;)

ארכיון

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

דיונים חדשים