Pelo que vi quase todas as coisas, use coordenadas onde (0, 0) está no canto superior esquerdo e o eixo Y positivo vai na direção descendente da tela.
Por que é assim? Por que o eixo Y positivo convencional não sobe como mostrado nos gráficos das aulas simples de matemática?
coordinates
graph
user3387566
fonte
fonte
Respostas:
Isso é causado na história. Os computadores antigos tinham tubos de raios catódicos (CRTs) que "desenham" a imagem com um raio catódico do canto superior esquerdo ao canto inferior direito.
Para facilitar a interface entre a memória da placa de vídeo e o CRT, a memória foi lida desde o início e a imagem foi desenhada do canto superior esquerdo (com o endereço de memória mais baixo) para o canto inferior direito (com o endereço de memória mais alto).
Extensão (com base nos comentários)
Os CRTs são baseados em aparelhos de TV analógicos disponíveis na época.
Os aparelhos de TV criam a imagem linha por linha primeiro da esquerda para a direita e depois de cima para baixo . A razão para isso só pode ser assumida com base no estilo de escrita nos países ocidentais.
fonte
Essa é uma ótima pergunta que eu já pensei várias vezes. A resposta simples para "por que" é que os formatos de TV também desenhavam suas linhas da esquerda para a direita e de cima para baixo. Os monitores de computador originais eram telas CRT (TVs pequenas); portanto, o formato naturalmente permaneceu o mesmo. Quando os monitores se tornaram telas planas (e as TVs também se tornaram telas planas), era igualmente natural manter o mesmo formato para facilitar a compatibilidade.
É claro que você pode perguntar: por que as TVs são desenhadas dessa maneira? Eles foram inventados no início do século 20, para que você possa imaginar quanto pensamento ou falta dele foi introduzido no design, se foi questionado. Nota: não deve ser desrespeitoso, pois é incrivelmente mais desafiador obter equações para desviar magneticamente os raios para as linhas apropriadas na tela, em oposição a uma matriz simples de pequenas "lâmpadas". (Isso meio que levanta a questão de como eles inventaram os CRTs antes da simples matriz de pontos, no início do século XX?)
No entanto, meu palpite é que provavelmente nunca foi questionado (uma coisa ruim), pois as línguas ocidentais escrevem palavras da esquerda para a direita e de cima para baixo. Provavelmente ninguém concebeu a possibilidade de fazê-lo de maneira diferente.
Pessoalmente, não gosto deste formato. Adquiri essa atitude ao programar jogos e outras simulações envolvendo órbitas elípticas. Sempre que você olha para desenhar equações que envolvem pecado, cos ou tan, você deve inverter cuidadosamente os sinais que lidam com os parâmetros do eixo y ... ou irá desenhar a coisa errada. Um exemplo seria as equações paramétricas para uma elipse desenhada em qualquer ângulo 2D. Pode ser um verdadeiro pesadelo dissecando o pecado pecado, pecado cos, e coisas semelhantes.
Sucintamente falando em termos matemáticos, a tela está no quadrante 4 em vez do quadrante 1. Isso é desnecessariamente complicado.
Entre as três dimensões, o eixo z é considerado "ascendente" na direção positiva. Meio irônico. [EDIT]: Talvez não, veja meu comentário abaixo.
Mais duas coisas que eu percebi / deparei:
Os relógios de sol no hemisfério norte (que possuem ponteiros e discos voltados para o norte paralelos ao solo) sempre giram no sentido horário . Portanto, se colocarmos a hora zero no topo da "face do relógio", o ponteiro da sombra começará a se mover para a direita. Essa pode ser a origem da direção da esquerda para a direita nas línguas ocidentais, propagando-se pelas coordenadas cartesianas e telas de TV / computador.
Os computadores antigos não desenhavam tanto objetos gráficos. Eles desenharam texto em um prompt de comando. Portanto, é natural colocar a linha 0 em y = 0. Se tivéssemos uma origem no canto inferior esquerdo, a matemática para desenhar linhas de texto seria um pouco mais envolvida, e isso poderia ter sido um grande problema para os antigos computadores lentos (que até criaram um atalho para aumentar em 1, pelo amor de Deus, chamado "++"). Além disso, você precisa conhecer a resolução da tela, enquanto que, se você fizer a linha 0 em y = 0, não precisará saber a resolução.
fonte
Adendo: Os primeiros gráficos foram feitos em monitores vetoriais , a apenas um passo dos osciloscópios vistos em laboratório, onde (0,0) estaria exatamente no meio da tela, sujeito a um botão giratório para definir a escala X / Y, X / Y offset, e possivelmente inversão X / Y.
O hardware dedicado do Atari "Asteroids" (1979), por exemplo, usava uma tela vetorial; seria interessante saber qual era o seu sistema de coordenadas do programa.
O sistema "Sketchpad" de Ivan Sutherland (1963) foi baseado em uma tela vetorial TX-2 e, em "Sketchpad: Um sistema de comunicação gráfica homem-máquina" (tese de doutorado, janeiro de 1963), ele escreve na página 70ff:
O diagrama 5.2 na página 73 mostra que o "sistema de coordenadas da página" usa a convenção matemática do sistema de coordenadas cartesianas X / Y. (Alguém pode perguntar por que essa convenção é do jeito que é ...)
fonte
Nem tudo está no canto superior esquerdo.
O OpenGL, por exemplo, especifica que a origem está na parte inferior esquerda, e isso é difundido em toda a API: coordenadas de textura, viewports, retângulos texel, a projeção orto padrão: fica na parte inferior esquerda até o fim.
Há uma diferença de pensamento aqui.
Nas telas de computador, como nos livros, quando as pessoas leem (e estou assumindo um idioma como o inglês aqui), elas leem da esquerda para a direita e de cima para baixo. Você fez isso sozinho quando escreveu esta pergunta e o faz quando lê as respostas.
Em matemática e design, quando você plota um gráfico, você tem um eixo X e Y com X positivo indo para a esquerda e Y positivo subindo.
Se você estiver criando algo como uma GUI 2D em um jogo, pode ser mais fácil e mais intuitivo para muitas pessoas defini-lo da maneira "superior esquerda é a origem".
Se você estiver criando algo para imitar um design ou layout em papel milimétrico, pode ser mais fácil e mais intuitivo para muitas pessoas colocá-lo da maneira "inferior esquerda é a origem".
Na verdade, essas duas são convenções bastante informais e, se você estiver configurando uma projeção orto, poderá optar por ter sua origem em qualquer ponto arbitrário da tela (ou desligado), com o X positivo indo para a esquerda ou para a direita e positivo. Y subindo ou descendo. É apenas uma questão de ajustar sua matriz de projeção de acordo.
A única coisa importante é, portanto, escolher qual convenção você vai usar e usá-la de forma consistente.
fonte
Porque as telas começam a renderizar a imagem no canto superior esquerdo. Seria mais fácil relacionar a renderização ou desenho do eixo coordenado quando (0,0,0) estiver no canto superior esquerdo com o eixo + Y entrando na tela.
fonte
Um argumento FOR: (por exemplo)
O código corresponde aos resultados na tela :
A seta vermelha ficaria de cabeça para baixo se você NÃO usasse a origem no canto superior esquerdo.
Não sei dizer se é "por que". Só isso, é uma boa razão para a origem no canto superior esquerdo.
fonte