THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Γραφική με υπολογιστές => Topic started by: gpapanik on March 22, 2006, 22:53:44 pm



Title: Απορια στην 1η εργασια 2006
Post by: gpapanik on March 22, 2006, 22:53:44 pm
Καλησπερα. Επειδη ελειπα απο το μαθημα που εξηγηθηκε ο αλγοριθμος πληρωσης πολυγωνου και εχω φαει ενα καλο σκαλωματακι μηπως θα μπορουσε κανεις να με βοηθησει στην εξης απορια μου:
τι γινεται οταν σε μια γραμμη σαρωσης η λιστα ενεργων οριακων σημειων εχει περιττο αριθμο σημειων?
Οπως αντιλαμβανομαι εγω τον αλγοριθμο οι οριζοντιες ακμες αφου δεν θεωρουνται ενεργες δεν εχουν κανενα ενεργο οριακο σημειο. Οι κορυφες ομως των οριζοντιων ακμων μπορουν να μπουν στη λιστα ενεργων οριακων σημειων θεωρωντας τες ως σημεια της επομενης ή της προηγουμενης ακμης. Αυτο μας οδηγει ενιοτε σε λιστα οραικων σημειων με περιττο πληθος σημειων και πιθανως σε λαθος λειτουργια του αλγοριθμου.
Αν δεν ειναι κατανοητη η απορια πειτε μου να φτιαξω ενα σχημα να ανεβασω.


Title: Re: Απορια στην 1η εργασια 2006
Post by: ioanna208 on March 23, 2006, 01:49:08 am
αν κατάλαβα καλά την απορία σου και αν κατάλαβα και καλα από την θεωρία τι πρέπει να κάνουμε για την πλήρωση ενός πολυγώνου....:

όπως είπες τις οριζόντιες δεν τις θεωρούμε ως ενεργές στον αλγόριθμο αλλά τα άκρα τους είναι οριακά σημεία λόγω άλλων ακμών...αυτό εμάς μας βολεύει γιατί θέλουμε να χρωματιστεί η οριζόντια πλευρά εκτός και αν είναι τέρμα πάνω σύμφωνα με την σύμβαση (σελ 32, σημειώσεις)..
αν δεν καταλαβαίνω καλά την απορία σου γίνε λίγο πιο σαφής..

(περιττός αριθμός οριακών σημείων σημαίνει ότι το Pixel είναι εσωτερικό του πολυγώνου..)


Title: Re: Απορια στην 1η εργασια 2006
Post by: TT_PTOLEMAIDA on March 23, 2006, 02:01:28 am
Χμμμ....όντως πρέπει να διαβάσω και Γραφική....


Title: Re: Απορια στην 1η εργασια 2006
Post by: gpapanik on March 23, 2006, 10:55:52 am
όπως είπες τις οριζόντιες δεν τις θεωρούμε ως ενεργές στον αλγόριθμο αλλά τα άκρα τους είναι οριακά σημεία λόγω άλλων ακμών...αυτό εμάς μας βολεύει γιατί θέλουμε να χρωματιστεί η οριζόντια πλευρά εκτός και αν είναι τέρμα πάνω σύμφωνα με την σύμβαση (σελ 32, σημειώσεις)..
αν δεν καταλαβαίνω καλά την απορία σου γίνε λίγο πιο σαφής..

(περιττός αριθμός οριακών σημείων σημαίνει ότι το Pixel είναι εσωτερικό του πολυγώνου..)

Ωραια. Σκεψου μια γραμμη σαρωσης οπου εχει 3 ενεργα οριακα σημεια. Τα 2 πρωτα ειναι οι κορυφες μιας οριζοντιας πλευρας. Δεν με ενδιαφερει αν θα βαφουν τα σημεια της οριζοντιας πλευρας. Αλλα τα σημεια μεταξυ του 2ου και 3ου σημειου ΔΕΝ θα βαφουν σιγουρα. Και μερικες φορες ειναι  σημεια του εσωτερικου του πολυγωνου. Πως ξεπερνιεται αυτο?


Title: Re: Απορια στην 1η εργασια 2006
Post by: ioanna208 on March 23, 2006, 16:46:04 pm
έχω κάνει ένα σχήμα..πες μου αν εννοείς τέτοια περίπτωση όπως στο σχήμα?


Title: Re: Απορια στην 1η εργασια 2006
Post by: ioanna208 on March 23, 2006, 16:49:07 pm
ορίστε το σχήμα...


Title: Re: Απορια στην 1η εργασια 2006
Post by: gpapanik on March 23, 2006, 17:24:44 pm
έχω κάνει ένα σχήμα..πες μου αν εννοείς τέτοια περίπτωση όπως στο σχήμα?
Καταλαβα τι λες αλλα δεν δουλευει γενικα η σκεψη σου. Επισυναπτω το σχημα σου λιγο παραλλαγμενο. Υπεθεσε οτι οι δυο κορυφες που σου δειχνω ειναι σε συνεχομενες γραμμες σαρωσης, η κατακορυφη δηλαδη αποσταση τους ειναι 1. Τοτε αν και χρωματιζονται τα pixels που ειναι ακριβως κατω απο την οριζοντια πλευρα (ισως εκτος της κατω κορυφης) τα pixels μεταξυ του δευτερου και του τριτου οριακου σημειου χρωματιζονται επισης. 


Title: Απ: Απορια στην 1η εργασια 2006
Post by: poumpa on March 24, 2006, 03:40:16 am
Δεν πρέπει ποτέ σε μια γραμμή σάρωσης να υπάρχει περιττός αριθμός ενεργών σημείων.
Τα άκρα των οριζόντιων πλευρών είναι ειδική περίπτωση για αυτό και (νομίζω...) δεν πρέπει να συμπεριληφθούν αναγκαστικά και τα δύο στη λίστα των ενεργών οριακών σημείων λόγω των άλλων πλευρών. Με άλλα λόγια αντιμετωπίζονται διαφορετικά από τα υπόλοιπα σημεία.
Στο παράδειγμα του σχήματος τα οριακά σημεία είναι το xmin της οριζόντιας πλευράς και το άλλο άκρο τέρμα δεξιά. Δηλαδή όλα τα pixel ενδιάμεσα θα θεωρηθούν εσωτερικά του πολυγώνου και χρωματίζονται.
Υπάρχουν μερικοί απλοί τρόποι, κοιτάζωντας τις άλλες πλευρές που ενώνονται με την οριζόντια, για να ξεχωρίζεις ποια από τα άκρα της οριζόντιας πλευράς θα μπούν στη λίστα.
Όσο για τη μέθοδο που ελέγχεις τα pixels που είναι ακριβώς από κάτω μου φαίνεται ότι δεν είναι και τόσο σωστή. Την είχα σκεφτεί και εγώ στην αρχή και τελικά είδα ότι μπορεί να παρουσιάσει αρκετά προβλήματα, ειδικά σε πολύ λεπτά πολύγωνα (slivers).
Πάντως ο Ντελόπουλος στο μάθημα είχε πεί ότι είμαστε ελέυθεροι να κάνουμε ότι παραδοχές νομίζουμε αρκεί να τις εξηγούμε. Αν θα αξιολογηθούν το ίδιο δεν το ξέρω...


Title: Re: Απορια στην 1η εργασια 2006
Post by: gpapanik on March 24, 2006, 16:15:10 pm
Να κανω ακομη μια ερωτηση...Φαινεται ειναι λιγο πιο απαιτητικη η εργασια απ'οτι φαινοταν.
Σκεφτομαι την υλοποιηση της συμβασης (του πολυγωνου που βρισκεται ψηλοτερα ή/και δεξιοτερα). Εκανα ενα σχημα με 4 τριγωνα τα οποια εχουν μια κοινη κορυφη. Το κεντρο του pixel που βρισκεται πανω στην κορυφη αυτη απο ποιο πολυγωνο θα πληρωθει? Νομιζω οτι οι σημειωσεις δεν ξεκαθαριζουν το θεμα της συμβασης για οριακες καταστασεις σαν κι αυτη (ειδικα το σχημα 3.6  με το φιδι το μπερδευει περισσοτερο). Το πολυγωνο που βρισκεται πιο ψηλα και πιο δεξια ειναι το 3 (?). Πως υλοποιειται ομως αυτο?
Στην "υλοποιηση" μου, εξεταζοντας ενα-ενα ξεχωριστα τα pixels το κεντρο των οποιων ειναι πανω σε καποια ακμη, θεωρω ως το πολυγωνο που βρισκεται ψηλοτερα το πολυγωνο στο οποιο ανηκει το ακριβως πανω pixel και ως το πολυγωνο που βρισκεται δεξιοτερα το πολυγωνο στο οποιο ανηκει το ακριβως δεξια pixel. Δηλαδη αν η κοινη κορυφη ειναι η (x,y) τοτε το πανω πολυγωνο ειναι αυτο που περιεχει το pixel (x,y+1) (δηλαδη το 2), ενω το δεξια αυτο που περιεχει το (x+1,y) (δηλαδη το 4). Αποτελεσμα: κατα την εξεταση του σημειου κατα την πληρωση κανενος των 4 τριγωνων δεν πληρωνεται και τελικα μενει... κενο. Κανενα σχολιο? Βγαλατε εσεις ακρη με την εφαρμογη της συμβασης που να δουλευει σε οριακες τετοιες περιπτωσεις (αλλη μια παρομοια περιπτωση ειναι η κοινη κορυφη των τριγωνων στο σχημα 3.6 των σημειωσεων)?


Title: Απ: Απορια στην 1η εργασια 2006
Post by: poumpa on March 24, 2006, 23:26:28 pm
Από το σχήμα σου όντως το 3 μου φαίνεται ότι είναι αυτό που θα "πάρει" την κεντρική κορυφή.
Αν θες ένας άλλος τρόπος να περιγράψεις την σύμβαση είναι: "Τα οριακά σημεία που ανήκουν στο πολύγωνο είναι όσα μπορούν να θεωρηθούν ότι βρίσκονται κάτω και αριστερά του εσωτερικού του πολυγώνου". Είναι λίγο μπερδεμένο. Ίσως στο τελευταίο σχήμα με το τετράγωνο φαίνεται πιο καθαρά.
Αυτό που πιστεύω εγώ είναι ότι ανεξάρτητα από ποια ακριβώς οριακά σημεία θα θεωρήσουμε ότι ζωγραφίζονται ή όχι, πρέπει να προσπαθήσουμε τρία πράγματα:
1)Να μην μένουν κενά (οριακά ή μη) σημεία
2)Να μην ζωγρααφίζονται σημεία εξωτερικά του πολυγώνου (δεν είναι τόσο προφανές όσο φαίνεται...)
3)Ένα σημείο να μην ζωγραφίζεται από δύο πολύγωνα (Ειδικά αυτό!)
Νομίζω ότι στα σχήματα των σημειώσεων επιτυγχάνεται κάτι τέτοιο. Τώρα αν θα ζωγραφιστεί ένα pixel πάνω, ένα pixel κάτω μάλλον δε μετράει τόσο.
Τουλάχιστον έτσι κατάλαβα από τα μαθήματα


Title: Re: Απορια στην 1η εργασια 2006
Post by: ioanna208 on March 26, 2006, 12:03:37 pm
καλημέρα!!
να ρωτήσω κάτι για το ερώτημα Β της εργασίας....αυτό που λέει για το όρισμα PP ότι είναι μία λίστα πινάκων (cellarray)...δεν μπορώ να καταλάβω πως θα εκφραζόμαστε γι' αυτή την λίστα πινάκων. Δηλαδή π.χ. για τον δεύτερο πίνακα (ουσιαστικά δεύτερη γραμμή) και για το πρώτο του στοιχείο τι γράφουμε??


Title: Re: Απορια στην 1η εργασια 2006
Post by: snake5 on March 26, 2006, 16:21:46 pm
ioanna den katalabainw ti ennoeis,o PP einai enas pinakas me arithmo grammwn to plithos twn polygwnwn pou thes na plhrwseis( h na se plhrwsei...!)kai arithmo sthlwn ton max arithmo koryfwn pou exei to i -osto polygwno( opoio kai an einai auto).Oi ypoloipes grammes(polygwna) pou exoun ligoteres apo max koryfes symplhrwnontai me mhdenika.Den ylopoieis dhladh enan dynamiko pinaka me metablhto arithmo sthlwn alla praktika enan 2x2 pinaka.

Egw allo thelw na rwthsw.Ayth h brwmiara h colorshape() ti akribws kanei?Efoson h fillpolygons() gemizei ton kamba (mxn) me mhdenika,assous,dyaria k.l.p, kaleis mesa ths diadoxika th scangrd2() toses fores osa ta polygwna kai teleiwse h istoria.

Esteila mail ston Ntelopoulo apo proxtes alla mallon prepei na psaxw na brw kai to kinhto tou...


Title: Re: Απορια στην 1η εργασια 2006
Post by: snake5 on March 26, 2006, 16:32:31 pm
οσο γι αυτο που ελεγες πριν για τον PP, εξάγεις κάθε φορά από τον PP την ι -οστή γραμμή, δηλ. έναν πίνακα μονοδιάστατο P και με αυτόν σαν όρισμα καλείς μέσα στην fillpolygons()  την fillpolygon() για να γεμισει διαδοχικά τα πολύγωνα.Τώρα για τις συμβάσεις που παίρνει ο καθένας, εγώ στον κυρίως αλγόριθμο πήρα καμιά εικοσαριά διαφορετικές υποπεριπτώσεις που μπορούν να προκύψουν στο σχήμα και τις χειρίζομαι ξεχωριστά(π.χ. οριζόντιες ακμές, περιττό αριθμό ενεργών σημείων, κάθετες πλευρές κ.λ.π).


Title: Απ: Απορια στην 1η εργασια 2006
Post by: marauber on March 26, 2006, 20:56:22 pm
Egw allo thelw na rwthsw.Ayth h brwmiara h colorshape() ti akribws kanei?Efoson h fillpolygons() gemizei ton kamba (mxn) me mhdenika,assous,dyaria k.l.p, kaleis mesa ths diadoxika th scangrd2() toses fores osa ta polygwna kai teleiwse h istoria.

Καταρχάς καλύτερα να μην χρησιμοποιούσες τα greeklish γιατί γίνεται δύσκολη η κατανόηση (βλέπω ότι το διόρθωσες μετά :)).
Αν έχω καταλάβει καλά, η fillpolygons γεμίζει τον πίνακα μόνο με μηδενικά και άσσους, δηλαδή σχηματίζει ασπρόμαυρη εικόνα με τη χρήση της scangrd. H colorshape είναι αυτή που σχηματίζει την έγχρωμη εικόνα.


Title: Re: Απορια στην 1η εργασια 2006
Post by: cristina on March 27, 2006, 15:39:52 pm
Καλημέρα.
Μήπως κάποιος έχει εμφανίσει την εικόνα που προκύπτει στην περίπτωση του μεγάλου καμβά?(αύτή που προκύπτει με την ανάγνωση του αρχείου lion.plg). Είναι εύκολο να την ανεβάσει?


Title: Απ: Απορια στην 1η εργασια 2006
Post by: marauber on March 27, 2006, 16:30:54 pm
Καλημέρα.
Μήπως κάποιος έχει εμφανίσει την εικόνα που προκύπτει στην περίπτωση του μεγάλου καμβά?(αύτή που προκύπτει με την ανάγνωση του αρχείου lion.plg). Είναι εύκολο να την ανεβάσει?

Θα το έκανα...αν ήξερα πως γίνεται αυτή η ανάγνωση. Πως στο καλό δουλεύει αυτή η readplg >:(; Στην σύνταξη της γράφει readplg(filename). Δοκιμάζω να βάλω το όνομα του αρχείου (lion.plg), τίποτα. Γράφω όλο το path,πάλι τίποτα. Εννοείται ότι έχω βάλει και τη συνάρτηση και το αρχείο στον φάκελο /work του matlab, στον οποίο εξ'ορισμού έχει ορισμένο path το matlab για να τον βλέπει. Οπότε, τι πρέπει να βάλω στη θέση του filename;


Title: Re: Απορια στην 1η εργασια 2006
Post by: snake5 on March 30, 2006, 18:33:49 pm
γράφεις απλά [E PP C]=readplgc('lion.plg'); και έχεις γεμίσει ήδη τους κατάλληλους πίνακες,πρόσεξε όμως τη μορφή των τελευταίων γιατί θα χρειαστεί να τους πειράξεις λίγο για να έρθουν στη μορφή με την οποία τους χρησιμοποιείς στον κυρίως αλγόριθμό σου...


Title: Re: Απορια στην 1η εργασια 2006
Post by: ioanna208 on March 30, 2006, 19:51:41 pm
έχω ένα πολύ σπαστικό πρόβλημα..ενώ έχω κάνει την fillpolygons, ηοποία σε μικρό καμβά τρέχει μια χαρά  και έχω κάνει και την colorshape έχω κάνει ένα πρόγραμμα για να εμφανιστεί το λιοντάρι, υπάρχει πρόβλημα, δεν βγάζει κάτι..μόνο μια μαύρη εικόνα...


function X=colorshape(E,PP,C,M,N)

F=fillpolygons(E,PP,M,N)
X=zeros(M,N,3);
for(i=1:1:M)
    for(j=1:1:N)
        pixel=F(i,j);
        if(pixel~=0)
            X(i,j,:)=C(pixel);
        end
    end
   
end 

το πρόγραμμα που χρησιμοποιώ για να τρέξει ..


[P,F,C]=readplgc('lion.plg');
N=max(P(1,:))+1;
M=max(P(2,:))+1;
E=P;
sizeF=size(F);
ar_grF=sizeF(1);
PP=cell(1,ar_grF);
for(i=1:1:ar_grF)
    for(j=1:1:F(i,1))
        PP{i}(j)=F(i,j+1);
    end
end

        C=C/255;


X=colorshape(E,PP,C,M,N)
X1=uint8(X);
imshow(X1)



που έχω κάνει λάθος???


Title: Re: Απορια στην 1η εργασια 2006
Post by: ioanna208 on March 30, 2006, 20:07:08 pm
επίσης αν αντί για
X1=uint8(X);
imshow(X1);

γράψω κατευθείαν
imshow(X);
τότε μου εμφανίζει μάυρο φόντο και άσπρο το λιοντάρι...Τι παίζει με αυτά τα χρώματα..?