Avatar billede segato Nybegynder
03. november 2006 - 12:12 Der er 5 kommentarer og
1 løsning

Hit testing shapes

Hvor laver man egentlig hit testing i .NET. Hvis vi kigger på nedenstående kode som også kan være cirkler osv. Men hvordan kan jeg teste om et museklik er inden for den nedenstående figur?

Graphics g = this.CreateGraphics();
Rectangle r = new Rectangle(50, 50, 100, 100);
g.DrawRectangle(new Pen(new SolidBrush(Color.Red)),r);
Avatar billede mh6000 Nybegynder
03. november 2006 - 12:25 #1
Du skal selv igang, men prøv at se her:
http://www.codeproject.com/csharp/collision3.asp
Avatar billede segato Nybegynder
03. november 2006 - 12:49 #2
Så det du siger er jeg skal placere en firkant rundt om mine shapes og så bruge intersect. Men intersect er jo desværre på en rectangle og ikke på et point.
Avatar billede mh6000 Nybegynder
03. november 2006 - 12:56 #3
ja.
Alternativt er at du selv laver en intersect metode :-)
Avatar billede segato Nybegynder
03. november 2006 - 13:55 #4
Jeg fandt en andne løsning som jeg syntes er bedre og som virker på alle shapes:

System.Drawing.Drawing2D.GraphicsPath shape = new System.Drawing.Drawing2D.GraphicsPath();
            shape.AddEllipse(0, 0, this.Width, this.Height);
            Region region = new Region(shape);           

            if( region.IsVisible(e.Location) )
                MessageBox.Show("Inside");
            else
                MessageBox.Show("outside");
Avatar billede segato Nybegynder
03. november 2006 - 13:56 #5
Men tak for hjælpen smid et svar. Det altid rart når folk kommer med lidt input.
Avatar billede mh6000 Nybegynder
03. november 2006 - 14:08 #6
svar :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester