Avatar billede xiol Nybegynder
21. juni 2005 - 18:12 Der er 7 kommentarer og
1 løsning

Ændring af koordinatsystem?

Er er en måde hvorpå man kan ændre en form/komponens kordinatsystem så den tager udgangs nederst venstre hjørne
(nårmalt koordinatsystem) og ikke i øverste venstre hjørne.

på forhånd tak
Avatar billede driis Nybegynder
21. juni 2005 - 18:22 #1
Nej.
Avatar billede nielle Nybegynder
21. juni 2005 - 20:04 #2
Du kan ikke ændre koordinatsystem på din form. Derimod kan du ændre koordinater på et Graphics object, herunder også det som høre til din form. Måske er det i virkeligheden det du eftersøger?

De relevante metoder på Graphics objektet er:

RotateTransform() - Rotering
TranslateTransform() - Parallelforskydning.
ScaleTransform() - Skalering.
MultiplyTransform() - transformere med en matrix.
Avatar billede nielle Nybegynder
26. juni 2005 - 20:19 #3
Hvad med lidt respons?
Avatar billede tuxic Nybegynder
04. juli 2005 - 19:55 #4
Er det ikke lige til at lave en metode der oversætter koordinater mellem det ønskede koordinatsystem og formens?
Avatar billede nielle Nybegynder
06. juli 2005 - 20:37 #5
protected override void OnPaint(PaintEventArgs e)
{
    Graphics g = e.Graphics;

    g.ScaleTransform(1, -1);
    g.TranslateTransform(0, -DisplayRectangle.Height);           

    Pen p = new Pen(Color.Black);
    p.EndCap = LineCap.ArrowAnchor;

    g.DrawLine(p, 1, 1, DisplayRectangle.Width, DisplayRectangle.Height);
}
Avatar billede xiol Nybegynder
08. juli 2005 - 10:06 #6
tak for svaret nielle. Det virkede. Du må undskylde det kommer lidt sent men hvis du ville have nogle point så smid et svar.
Avatar billede nielle Nybegynder
08. juli 2005 - 17:38 #7
Svar :^)
Avatar billede nielle Nybegynder
08. juli 2005 - 17:47 #8
Forklaring:

1)

g.ScaleTransform(1, -1);

- vender y-aksen sådan at den nu peger op. Dette opnås ved at gange y-koordinaten med -1. x-aksen bevares ved at gange med 1.

Origo, dvs. koordinatsystemets 0-punkt, ligger stadig i øverste venstre hjørne, men y-aksen peger altså nu op i stedet for ned.

2)

g.TranslateTransform(0, -DisplayRectangle.Height);

- forskyder koordinatsystemet ned af til at origo kommer til at ligge i det nederste venstre hjørne. For at gøre dette skal x-aksen selvfølgelig ikke skubbes – derfor værdien 0 – men hvad med y-aksen? Det indre af formens vindue ligger i variablen DisplayRectangle, og derfor er det netop højden af dette som y-aksen skal trækkes ned (derfor den negative værdi).
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

IT-JOB