Jag ska rita ut ett koordinatsystem med axlar. I detta ska jag sedan rita ut punkter och linjer mellan punkterna.
Jag använder GDI+ och ritar ut detta i en panel.
Vanligvis när man ritar ut grafik så utgår koordinaterna från övre vänstra hörnet, och y-axeln är positiv nedåt. När man ritar standard-diagram är ju dock origo i nedre vänstra hörnet och y-axeln är positiv uppåt.
Finns det något enkelt (färdigt) sätt i .NET att ändra koordinatsystemet när man ritar?
Att bara flytta origo är ju lätt med Graphics.TranslateTransform(), men att få y-axeln att vara positiv uppåt istället för nedåt vet jag inte hur man gör.
Iofs så skulle det ju gå att bara flytta ner origo och sedan "översätta" koordinaterna så att alla y-koordinater blir negativa. Men jag tänkte att detta borde vara ganska vanligt och att det därför kanske finns något färdigt i .NET för att ändra koordinatsystemet.
Jag ska rita ut ett koordinatsystem med axlar. I detta ska jag sedan rita ut punkter och linjer mellan punkterna.
Jag använder GDI+ och ritar ut detta i en panel.
Vanligvis när man ritar ut grafik så utgår koordinaterna från övre vänstra hörnet, och y-axeln är positiv nedåt. När man ritar standard-diagram är ju dock origo i nedre vänstra hörnet och y-axeln är positiv uppåt.
Finns det något enkelt (färdigt) sätt i .NET att ändra koordinatsystemet när man ritar?
Att bara flytta origo är ju lätt med Graphics.TranslateTransform(), men att få y-axeln att vara positiv uppåt istället för nedåt vet jag inte hur man gör.
Iofs så skulle det ju gå att bara flytta ner origo och sedan "översätta" koordinaterna så att alla y-koordinater blir negativa. Men jag tänkte att detta borde vara ganska vanligt och att det därför kanske finns något färdigt i .NET för att ändra koordinatsystemet.
Kolla på Transform på ditt Graphics-objekt. Om du speglar y-axeln så kommer origo vara nere i vänstra hörnet. Nånting sånthär:
Graphics g = e.Graphics;
Matrix matr = new Matrix(1,0,0,-1,0,this.Height);
g.Transform = matr;