03. marts 2006 - 11:56Der er
8 kommentarer og 1 løsning
Events på graphics
Jeg er i gang med et lille projekt som i bund og grund er et lille tegneprogram. Der er et område, som indtil videre er en picturebox, hvor man kan tegne i et grid med snappunkter hvert 20. pixel. Det eneste man kan tegne er linier mellem disse snap-punkter. Jeg tegner basalt set en linie med flg kode:
gr.DrawLine(Pens.Black, 110, 25, 300, 150)
Mit problem er så at jeg gerne vil have nogle events på denne linie. Fx hvis man dobbeltklikker på den, eller man kører musen hen over. Jeg sidder og tænker på om man skal lave en custom control som nedarver fra et eller andet der har disse events, men jeg er lidt på herrens mark med custom controls, da jeg ikke har arbejdet med dette før. Det kan også være det skal/kan laves på en helt anden måde.
Selvom mange ledere i danske virksomheder udviser stor interessere for kunstig intelligens (AI), tøver de med at tage teknologien i brug.
19. november 2024
Slettet bruger
03. marts 2006 - 12:40#1
Du skal selv checke om musen er over eller på en linie du selv har tegnet. Det vil sige når du får mus koordinater på et move eller click så skal du checke din model for om den position er på noget du har tegnet.
Ja men et andet problem jeg nok vil få er at det skal være muligt at slette en linie efter den er blevet tegnet, fx ved at man vælger den med musen. Det kan jeg ikke umiddelbart se hvordan jeg kan lave. Har du et forslag.
Synes godt om
Slettet bruger
03. marts 2006 - 16:18#5
Du skal have en model af den tegning brugeren laver i form af objekter.
Den model tegner du så for brugeren og derved giver du en brugergrænseflade.
Når brugeren sletter en linie sletter du linie-objektet i modellen og gentegner modellen og linien vil være væk i grænsefladen.
Det gælder også når du skal checke om brugeren trykker på en linie, du checker i modellen og ikke i grafikken.
Tænker du på at lave et objekt, fx LineObjekt med oplysninger om en linie: (x1,y1), (x2,y2) Denne collection af LineObjekt'er løbes så igennem og for hvert LineObjekt tegnes en linie. Men hvordan kan man tjekke om man fx dobbeltklikker på en af disse LineObjekt'er. Skal hvert objekt så have et area som definerer hvilke pixels, relativ til et startpunkt for linien, som den pågældende linie "dækker" og så tjekke for intersection mellem alle LineObjekt'er og musepositionen, eller hvordan kan man lave det smart
Synes godt om
Slettet bruger
04. marts 2006 - 06:02#7
Ja du skal lave en objektmodel med linie objekter og tegne dem.
Du skal have din gamle geometri bog frem og regne ud om det punkt der bliver trykket på ligger på linien.
Jeg takker for input. Nu ved jeg hvordan jeg kan gribe det an. Gider du skrive et svar.
Synes godt om
Slettet bruger
08. marts 2006 - 16:23#9
svar;)
Synes godt om
Ny brugerNybegynder
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.