Matemática pura, física, química, etc.: tarefas de treinamento do cérebro que nada têm a ver com o comércio [Parte 2] - página 20
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Em coordenadas polares, tudo estará bem lá. Mas quando você muda para as coordenadas normais, a mesma coisa sairá.
Qual é a resposta curta? Você tem que dançar do fogão. Se avaliar a área de valores, então a redução para esta forma não é necessária.
_____________
A propósito, não é difícil obter os coeficientes da equação.
E mais uma coisa a propósito - a elipse original antes da rotação também não é expressa por tal função.
Em coordenadas polares, tudo estará bem lá. Mas quando você muda para as coordenadas normais, a mesma coisa sairá.
Qual é a resposta curta? Você tem que dançar do fogão. Se avaliar a área de valores, então a redução para esta forma não é necessária.
_____________
A propósito, não é difícil obter os coeficientes da equação.
E mais uma coisa a propósito - a elipse original antes da rotação também não é expressa por tal função.
A tarefa é desenhar uma elipse girada pixel a pixel. Não é uma elipse, mas um círculo achatado também é bom.
Uma elipse e um círculo achatado são a mesma coisa.
Portanto, há uma equação -- x^2/a^2 + y^2/b^2 = 1 -- que é uma elipse. (1)
Além disso, há uma transformação. Expressar x y por x' y' não é problema. A substituição em (1) também não é um problema.
Em seguida, fazemos loop over x em incrementos de 1 e loop over y em incrementos de 1.
E então medimos estes pontos, e é um pouco fácil.
O único problema é a área dos valores. É aqui que você tem que pensar sobre isso.
Uma elipse e um círculo achatado são a mesma coisa.
Portanto, há uma equação -- x^2/a^2 + y^2/b^2 = 1 -- que é uma elipse. (1)
Além disso, há uma transformação. Expressar x y por x' y' não é problema. A substituição em (1) também não é um problema.
Em seguida, fazemos loop over x em incrementos de 1 e loop over y em incrementos de 1.
Então você mede o ponto por ele, não é tão difícil.
O único problema -- a faixa de valores. É aqui que você tem que pensar sobre isso.
Se um círculo achatado e uma elipse são o mesmo, então y=k*sqr(r^2-x^2) é uma elipse.
Se você obtém y a partir de x e girá-lo, você obtém cantos de pixel (por exemplo pixel, pixel inferior e pixel direito). Qualquer peneirar os pixels e conectar os pontos resultantes com uma linha parecerá torto. Experimentei um monte de maneiras. A única maneira agradável é a função y' de x', se os pontos estiverem mais distantes do que um pixel, então conecte-os com uma linha.
Em resumo, eu provavelmente calcularia os pontos no sistema polar e depois removeria os pontos extras de acordo com o princípio das 8 ligações.
Vou tentar.
Se o círculo achatado e a elipse são o mesmo, então y=k*sqr(r^2-x^2) é uma elipse.
Se você obtiver y de x e girar, haverá cantos de pixels (por exemplo, pixel, pixel inferior e pixel direito). Qualquer peneirar os pixels e conectar os pontos resultantes com uma linha parecerá torto. Experimentei um monte de maneiras. A única maneira agradável é em função de y' de x', se os pontos estiverem mais distantes que um pixel, então conecte-os com uma linha.
Você precisa desenhá-la apenas em uma cor, ou você pode antisserrilhá-la? Se suavizar, você pode procurar por uma implementação pronta do algoritmo de Bresenham para elipse
P.S. Aqui está outra coisa que encontrei http://www.geometrictools.com/Documentation/IntegerBasedEllipseDrawing.pdf
Preciso fazê-lo apenas em uma cor, ou posso fazê-lo em um raster antialiased? Se suavizar, você pode procurar por uma implementação pronta do algoritmo de Bresenham para a elipse
P.S. Aqui está mais de http://www.geometrictools.com/Documentation/IntegerBasedEllipseDrawing.pdf
Em uma cor, se com o anti-aliasing, você precisará fazer tudo com o anti-aliasing.
* * *
Acho que a elipse não será até a próxima temporada :)
Algo surgiu, é claro. Eu realmente não me lembrei, eu vi como Renat desenhou um círculo. Verifique toda a área, se o ponto está dentro ou fora da figura. Em seguida, chegar à figura pronta de quatro lados e colorir o contorno. Há outra desvantagem com este caso - se não for uma elipse girada, é necessário calcular e refletir por um quarto. Se for uma elipse girada, você tem que calcular para metade dela e refleti-la. Também quero fazer um entalhe para desenhar setores e fatias.
Integer:
Se girado, calcular pela metade e refletir. Também quero fazer um entalhe para desenhar setores, fatias...
Especialmente as coordenadas polares!
Em parte, mas não totalmente. Em uma área quadrada para cada x e y, primeiro giramos, transformamos o x e y girado em coordenadas polares - obtemos a distância do ponto a partir do centro (r) e ângulo (fi), pelo ângulo fi, dado raio e coeficiente calculamos a distância do ponto extremo da elipse a partir do centro, comparamos com r e descobrimos se o ponto está dentro ou não.
Em qualquer caso, você precisará dividi-la em quartos ou metades e refletir.
Se você desenhar em coordenadas polares imediatamente, você tem que limpar alguns pontos mais tarde, e se você desenhar sólido, é mais fácil contorná-lo mais tarde. Talvez não seja assim, mas obviamente há mais complicações do que parece.