---
title: "Vända koordinatsystem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/166830-vända-koordinatsystem"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "haagel"
published: "2007-11-30T15:49:49.000Z"
updated: "2007-11-30T17:38:16.000Z"
replies: 4
views: 538
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/166830-vända-koordinatsystem"
---

# Vända koordinatsystem

## #1 — haagel, 2007-11-30T15:49Z

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.

Permalänk: https://www.webforum.nu/p/166830

## #2 — Phorpher, 2007-11-30T15:59Z

> **haagel skrev:**
>
> 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;
```

Permalänk: https://www.webforum.nu/p/2055016

## #3 — nitro2k01, 2007-11-30T16:01Z

Graphics.ScaleTransform(1, -1) kanske?

Permalänk: https://www.webforum.nu/p/2055018

## #4 — nitro2k01, 2007-11-30T16:05Z

Jaha, det går att definiera en helt egen transformationmatris... Jag googlade för att få fram mitt svar. (Jag känner inte till GDI+)

Permalänk: https://www.webforum.nu/p/2055020

## #5 — haagel, 2007-11-30T17:38Z

Tackar!   :)

Permalänk: https://www.webforum.nu/p/2055036

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/166830-vända-koordinatsystem
