/ Forside / Teknologi / Multimedie & design / Andet multimedie / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Andet multimedie
#NavnPoint
refi 19159
Klaudi 13515
severino 5400
pallebhan.. 4553
molokyle 4203
o.v.n. 3762
tedd 3707
bentjuul 3670
transor 2817
10  miritdk 2644
Punkt indenfor 2D polygon
Fra : Ditlev Brodersen


Dato : 05-08-02 13:46

Hej,

er der nogen, der ved hvordan man beregner om et givet punkt i to
dimensioner (x, y) ligger indenfor eller udenfor en lukket, irregulær
polygon, sammensat at rette linjestykker og defineret, f.eks., ved en række
punkter (xn, yn)?

Jeg er ved at skrive et vektor-baseret tegneprogram i C# og har brug for
at tjekke, om musen er over en af figurerne på canvas.

-- Ditlev

--
Dr. Ditlev E. Brodersen, Ph.D.
Postdoctoral fellow

Medical Research Council, Cambridge, UK
Email: ding@mrc-lmb.cam.ac.uk
WWW: http://alf1.mrc-lmb.cam.ac.uk/~ding




 
 
P.C. (05-08-2002)
Kommentar
Fra : P.C.


Dato : 05-08-02 17:54

Hi.

"Ditlev Brodersen" <ding@mrc-lmb.cam.ac.uk> skrev i en meddelelse
news:ails46$d6r$1@pegasus.csx.cam.ac.uk...
> Hej,
>
> er der nogen, der ved hvordan man beregner om et givet punkt i to
> dimensioner (x, y) ligger indenfor eller udenfor en lukket, irregulær
> polygon, sammensat at rette linjestykker og defineret, f.eks., ved en række
> punkter (xn, yn)?
>
> Jeg er ved at skrive et vektor-baseret tegneprogram i C# og har brug for
> at tjekke, om musen er over en af figurerne på canvas.
>
> -- Ditlev
>
> --
> Dr. Ditlev E. Brodersen, Ph.D.
> Postdoctoral fellow
>
> Medical Research Council, Cambridge, UK
> Email: ding@mrc-lmb.cam.ac.uk
> WWW: http://alf1.mrc-lmb.cam.ac.uk/~ding

Nemt nok , du skal se på værdier for x og y , _henholdsvis_ , og _hvis_ et punkt
er indenfor området skal det altså overholde nogle regler.
X må ikke være mindre end ,men skal være større end, foruden at y ikke må -----
osv.
Så er punktet indenfor ,ellers udenfor.
For hvert vector må du altså lave regler og så er det vel simpelt at sætte dem
som var's .
P.C.
http://groups.yahoo.com/group/3D-Honeycomb



Ditlev Brodersen (05-08-2002)
Kommentar
Fra : Ditlev Brodersen


Dato : 05-08-02 18:09

Hej P.C.,

tak for svaret, men det er ikke helt så enkelt, desværre. Hvordan
bestemmer du i første omgang hvilken side af hver vektor, der er indenfor
figuren?

-- Ditlev



P.C. (06-08-2002)
Kommentar
Fra : P.C.


Dato : 06-08-02 23:34

Hi.

"Ditlev Brodersen" <ding@mrc-lmb.cam.ac.uk> skrev i en meddelelse
news:aimbgm$r6k$1@pegasus.csx.cam.ac.uk...
> Hej P.C.,
>
> tak for svaret, men det er ikke helt så enkelt, desværre. Hvordan
> bestemmer du i første omgang hvilken side af hver vektor, der er indenfor
> figuren?
>
> -- Ditlev
>
>

Jeg tror det ville hjælpe på løsningen ,hvis du i første omgang lod figuren være
en rektangel .
Derudover skulle du lade linierne være vectorer , ---------altså hvis punktet er
midt i et kvadrat , a.b.c.d. er punktets x værdi større end første vector punkts
x værdi men mindre end det andet vector punkt og dette gælder alle vectorer
rundt, ------- det samme skal gælde y værdien _hvis_ punktet ligger midt i
rektanglen.
Jeg mener der findes en funktion som du kan finde i enhver textbook om
matematiken omkring matrix regning ,at den findes kan man se af at funktionen
indgår i calculator funktionerne i Acad.
Der er vist også noget med en tommelfinger regel der siger noget om på hvilken
side punktet ligger -------- det er nok for lang tid siden, at jeg har haft med
cosinus og sinus at gøre til at jeg kan give bedre råd , men med den rigtige
formel behøver man jo ikke engang st kunne regne, ------- skriv det i Lisp
istedet, der kan det med garenti lykkes og du kan skrive funktionen direkte og
med næsten samme ( samme mener jeg ) , syntax som en C++ funktion, Skriver du
den i Lisp kunne du prøve den i AutoCAD direkte på skærmen.
P.C.
http://groups.yahoo.com/group/structure-testbench/
P.C.
http://groups.yahoo.com/group/structure-testbench/



Søg
Reklame
Statistik
Spørgsmål : 177502
Tips : 31968
Nyheder : 719565
Indlæg : 6408534
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste