Partilhar via


Tipos de sistemas de coordenada

GDI+ usa três espaços de coordenada: mundo, página e dispositivo.As coordenadas do mundo são as coordenadas usadas para modelar um mundo elemento gráfico específico e as coordenadas que passar para métodos no .NET estrutura.coordenada de página consultem sistema de coordenada usado por uma superfície de desenho, sistema autônomo um formulário ou controle.Coordenadas de dispositivo são sistema autônomo coordenadas usadas pelo dispositivo físico que está sendo desenhado, sistema autônomo uma tela ou folha de papel.Quando você faz a telefonar myGraphics.DrawLine(myPen, 0, 0, 160, 80), os pontos que você passa para o DrawLine método —(0, 0) e (160, 80)— estão no espaço de coordenada do mundo. Antes de GDI+ pode desenhar a linha na tela, as coordenadas passam por uma sequência de transformações. Uma transformação, transformação global, chamada converte coordenadas do mundo em coordenadas da página e outra transformação, a transformação de página, chamada converte coordenadas de página às coordenadas do dispositivo.

Sistemas de coordenada e transformações

Suponha que você deseja trabalhar com um sistema de coordenada que tenha sua origem no corpo da área de cliente em vez de no canto superior esquerdo.Digamos, por exemplo, que você deseja que a origem seja 100 pixels da borda esquerda da área de cliente e 50 pixels da parte superior da área de cliente.A ilustração a seguir mostra um sistema de coordenada.

Quando você faz a telefonar myGraphics.DrawLine(myPen, 0, 0, 160, 80), você obtém a linha mostra a ilustração a seguir.

sistema autônomo coordenada dos pontos de extremidade da linha nos três espaços de coordenada são:

Mundo

(0, 0) para (160, 80)

Página

(100, 50) para (260, 130)

Dispositivo

(100, 50) para (260, 130)

Observe que a página coordenar espaço tem sua origem no canto superior esquerdo da área de cliente; isso será sempre o caso.Também observe que sistema autônomo a unidade de medida é o pixel, sistema autônomo coordenadas de dispositivo são o mesmo que sistema autônomo coordenadas da página.Se você conjunto a unidade de medida para algo diferente de pixels (por exemplo, polegadas), as coordenadas do dispositivo serão diferentes partir das coordenadas da página.

transformação global, que mapeia as coordenadas do mundo em coordenadas da página, é mantida no Transform propriedade das Graphics classe. No exemplo anterior, transformação global é uma tradução 100 unidades na direção x e 50 unidades na direção y.O exemplo a seguir define transformação global de um Graphics objeto e, em seguida, usa Graphics objeto para desenhar a linha mostrada na figura anterior:

myGraphics.TranslateTransform(100, 50)
myGraphics.DrawLine(myPen, 0, 0, 160, 80)

myGraphics.TranslateTransform(100, 50);
myGraphics.DrawLine(myPen, 0, 0, 160, 80);

A transformação de página mapeia coordenadas da página para as coordenadas do dispositivo.The Graphics classe fornece o PageUnit e PageScale propriedades para manipular a transformação de página. The Graphics classe também fornece duas propriedades somente leitura, DpiX e DpiY, para examinar os horizontais e verticais pontos por mover-se pouco a pouco do dispositivo de vídeo.

Você pode usar o PageUnit propriedade das Graphics classe para especificar uma unidade de medida Outros que o pixel.

Observação:

Você não é possível conjunto o PageUnit propriedade para World, sistema autônomo isso não é uma unidade física e fará com que uma exceção.

O exemplo a seguir desenha uma linha de (0, 0) para (2, 1), onde o ponto (2, 1) é 2 polegadas (5,08 centímetros) para a direita e 1 mover-se pouco a pouco para baixo do ponto (0, 0):

myGraphics.PageUnit = GraphicsUnit.Inch
myGraphics.DrawLine(myPen, 0, 0, 2, 1)

myGraphics.PageUnit = GraphicsUnit.Inch;
myGraphics.DrawLine(myPen, 0, 0, 2, 1);
Observação:

Se você não especificar uma largura de caneta ao construir a caneta eletrônica, o exemplo anterior desenhará uma linha que é uma mover-se pouco a pouco de largura.Você pode especificar a largura da caneta no segundo argumento para o Pen construtor:

Dim myPen As New Pen(Color.Black, 1 / myGraphics.DpiX)

Pen myPen = new Pen(Color.Black, 1 / myGraphics.DpiX);

Se vamos supor que o dispositivo de vídeo tem 96 pontos por mover-se pouco a pouco na direção horizontal e 96 pontos por mover-se pouco a pouco na direção vertical, os pontos de extremidade da linha no exemplo anterior tem as seguintes coordenada nos espaços de coordenada três:

Mundo

(0, 0) para (2, 1)

Página

(0, 0) para (2, 1)

Dispositivo

(0, 0, para (192, 96)

Observe que sistema autônomo a origem do espaço de coordenada do mundo está no canto superior esquerdo da área de cliente, sistema autônomo coordenada de página são o mesmo que sistema autônomo coordenada do mundo.

Você pode agrupar as transformações do mundo e a página para obter uma variedade de efeitos.Por exemplo, suponha que você deseja usar polegadas sistema autônomo unidade de medida e você queira que a origem do seu sistema de coordenada 2 polegadas (5,08 centímetros) da borda esquerda da área de cliente e 1/2 mover-se pouco a pouco da parte superior da área de cliente.O exemplo a seguir define as transformações do mundo e a página de um Graphics objeto e, em seguida, desenha uma linha de (0, 0) para (2, 1):

myGraphics.TranslateTransform(2, 0.5F)
myGraphics.PageUnit = GraphicsUnit.Inch
myGraphics.DrawLine(myPen, 0, 0, 2, 1)

myGraphics.TranslateTransform(2, 0.5f);
myGraphics.PageUnit = GraphicsUnit.Inch;
myGraphics.DrawLine(myPen, 0, 0, 2, 1);

A ilustração a seguir mostra a linha e o sistema de coordenada.

Se vamos supor que o dispositivo de vídeo tem 96 pontos por mover-se pouco a pouco na direção horizontal e 96 pontos por mover-se pouco a pouco na direção vertical, os pontos de extremidade da linha no exemplo anterior tem as seguintes coordenada nos espaços de coordenada três:

Mundo

(0, 0) para (2, 1)

Página

(2, 0,5) para (4, 1,5)

Dispositivo

(192, 48) para (384, 144)

Consulte também

Conceitos

Representação de matriz de transformações

Outros recursos

Sistemas de coordenada e transformações