» »

[delphi]seminarska - ploščina in obseg likov

[delphi]seminarska - ploščina in obseg likov

Boki_ ::

Heloou. U šoli smo dobili seminarske, js sm dobo za v Delphiju sprogramirat program, k ma eno okno, kamor narišeš lik in ti pol izpiše obseg in ploščino lika. Če narišeš več likov, ki se prekrivajo, morajo bit še pobarvani v drugi barvi. A se komu kej sanja kak to sploh narest, kr mi u šoli smo delali večinoma kake enostavne, ful enostavne programe, kot kaki kviz, kalkulator...


Tnx že vnaprej
I'm back

|CyGNUS-x ::

Kaj te pa muči? Sintaksa ali ne veš kako se naloge lotit?
Ni in ne more biti nobenega drugega načina za preizkušanje
resnične moči kapitalistične države kot je vojna.

Boki_ ::

U bistvu ne vem kako se lotit:D Paintbox je pomojem treba narest, naprej pa ne vem več ka naj :S U bistvu grafično že gre, rabim 2 edit polji, kjer se bosta izpisala ploščina in obseg. In gumb za ukaz da izračuna ploščino in obseg. Pol se zaplete, če maš več likov, od katerga naj prikaže, kako ga označit...
I'm back

Boki_ ::

??

Mogoče kaki How to?
I'm back

Boki_ ::

A prow noben...:O
I'm back

OwcA ::

Za začetek reši stvar za en lik.

Torej ali znaš:
1) realizirati izris lika?
2) izračunati obseg?
2) izračunati ploščino?

Če ne, česa natanko ne. Domače naloge v celoti tu pišemo, le če nas najameš kot programerje.
Otroška radovednost - gonilo napredka.

Boki_ ::

U bistvu se mal zaplete pr nepravih likih, k ni formule kak izračunat ploščino, če bi blo za risat kvadrate, trikotnike... ni panike, tak pa se zajebe pr kakih čist off likih. Pa me zanima če je kaka funkcija k razbere pixle k obsega lik in št. pikslov kok so stranice dolge.
I'm back

OwcA ::

Predpostavljam, da si se omejil na n-kotnike (torej nobenih krivulj). Potem lahko obseg vedno zračunaš s pomočjo pitagorovega izreka (ogljišča tako rabiš že za izris, tako da s tem ne bi smelo biti težav), za ploščino pa lik razdeliš na trikotnike in poračunaš ploščine le-teh.
Najlažje se je delitve lotiti tako, da najprej pogledaš, če je lik konveksen, če ni, ga razbiješ na konveksne, potem pa si v vsakem izmed teh izbereš poljubno točko in jo povežeš z vsemi oglišči. Tako dobiš iz m-kotnika m trikotnikov.

Poligoni, konveksnost.

Ali pa se problema lotiš "kot se spodobi", s triangulacijo.
Otroška radovednost - gonilo napredka.

Zgodovina sprememb…

  • spremenilo: OwcA ()

zerox ::

Hmh če bi recimo moral računat samo skupni obseg pa ploščino za vse ... in bi seveda tudi lahko risal poljubne like (kao s pencil tool) ... potem bi ploščino zračunal tako, da bi preštel "polne" pixle ... obseg bi pa dobil tako, da bi najprej naredil outline vseh likov in potem preštel tiste "polne" pixle ki še ostanejo :)

Zgodovina sprememb…

  • spremenil: zerox ()

Boki_ ::

OK, danes sm dobil mal modifikacijo naloge. Profesor je ugotovu da je mal pretežko k bi za ploščino moral neke matematične funkcije uporablat, k se jih nismo učili. Mam pa zdej nalogo za nardit en pulldown menu, v njem like, pa si pol zbiraš med liki, na paintboxu lih izriše, pol pa v edit poljih vpišeš določene podatke, manjkajoče ti izpiše. Bom ju3 pastal ka je nastalo in kaki so problemi.
I'm back

OwcA ::

Še vedno si lahko car in rešiš originalno nalogo. ;) Kakšnih hudih funkcij pa ne rabiš. Zadošča pitagorov izrek in posledično korenjenje ter kvadriranje.
Otroška radovednost - gonilo napredka.

Boki_ ::

Zaka bi delu neki kar mi ni treba? Že tko nimm časa se ukvarjat, k mam zdej trenutno za uredit ene pomembnejše stvari kot ta seminarska, tak da jo moram čimprej nardit (rok za oddajo čez 1 tedn).
I'm back

zerox ::

Če bi delal na moj način bi za obseg ter ploščino likov ne potreboval nobene formule...no inkrementat bi moral samo eno spremenljivko, ko bi naletela na polne pixle 8-)

Boki_ ::

Hja, sam kak to, ker ukaz je k to nardi :S
I'm back

OwcA ::

Malo si poglej metode za TCanvas.
Otroška radovednost - gonilo napredka.

SavoKovac ::

V bistvu (pri vrlih učencih) prevladuje zgrešeno mnenje, da se pri problemu te vrste da lepo delati s klasičnimi geometrijskimi prijemi (paper & pen like). IMHO je najbolje kar takoj s koordinatami delat, ploščine poljubnega lika pa lahko izračunaš s seštevanjem ploščin trikotnikov iz katerih je sestavljen.
Ploščina trikotnika je una determinanta in si kar funkcijo napišeš, npr. ...

ploscina(x1,y1,x2,y2,x3,y3:integer):single;
begin
ploscina:=ABS((x1-x2)*(y1-y3) - (x1-x3)(y1-y2))*0.5;
end;

Nekaj v tem stilu...:D

Zgodovina sprememb…

SavoKovac ::

Ja, sem skoraj pozabil omeniti...si moraš potem še klasični (realni) koordinatni sistem preslikat na območje na canvasu na formi. V primeru da tudi rišeš. Če računaš zgolj nad podatki, potem tudi ploščino kličeš (vsaj jaz bi) z realnimi vrednostmi za x1,y1...

Če pa podatke za like vnašaš kar kot x/y koordinate, potem bi bila zgornja funkcija dobra osnova. Seveda dobiš "kvadratne" piksle oz. samo piksle kot ploščino oz. obseg. Omenjam zato, ker problem ni čisto trivialen (preslikave med celoštevilskim in realnim koord. sistemom ter izračunanimi vrednostmi). Lahko shranjuješ dvojne koordinate za like. Računalu je vseeno. :D

Gundolf ::

Premaknjeno iz druge teme:

Tom DeLonge pravi:
Delphi-si. Com/forum/prikazisporocila. Php? Tema=7392&mesto=def evo problem.

Edit: Jaz tudi zadnje cajte vse narobe klikam.

Zgodovina sprememb…

  • spremenil: Gundolf ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Matematika integral

Oddelek: Šola
8844 (642) kolitjer
»

Površina kroga brez pi (strani: 1 2 )

Oddelek: Znanost in tehnologija
7710483 (8572) CHAOS
»

[Python] syntax error-invalid syntax

Oddelek: Programiranje
51688 (1658) Vesoljc
»

Matematika (ploščine)

Oddelek: Šola
112846 (2690) N-E-O
»

Kvadratura lika ? m2

Oddelek: Loža
352389 (1894) ta_pridna

Več podobnih tem