Saf matematik, fizik, kimya, vs.: ticaretle ilgisi olmayan beyin jimnastiği problemleri [Bölüm 2] - sayfa 20

 

Kutupsal koordinatlarda orada her şey çok güzel olacak. Ama normale geçince aynı şey çıkacak.

Hangi görev daha kısa? Sobadan dans etmeliyiz. Tahmin, değerlerin aralığıysa, bu forma indirgeme isteğe bağlıdır.

_____________

Bu arada, denklemin katsayılarını elde etmek genellikle kolaydır.

Ve bu arada bir şey daha var - dönüşten önceki orijinal elips de böyle bir fonksiyonla ifade edilmiyor.

 
TheXpert :

Kutupsal koordinatlarda orada her şey çok güzel olacak. Ama normale geçince aynı şey çıkacak.

Hangi görev daha kısa? Sobadan dans etmeliyiz. Tahmin, değerlerin aralığıysa, bu forma indirgeme isteğe bağlıdır.

______________

Bu arada, denklemin katsayılarını elde etmek genellikle kolaydır.

Ve bu arada bir şey daha var - dönüşten önceki orijinal elips de böyle bir fonksiyonla ifade edilmiyor.


Görev, piksel piksel döndürülmüş bir elips pikseli çizmektir. Elips olmasın, düzleştirilmiş bir daire de işe yarayacaktır.
 

Bir elips ve bir yassı daire aynı şeydir.

Yani bir denklem var -- x^2/a^2 + y^2/b^2 = 1 -- bu bir elips. (1)

Sonraki - bir dönüşüm var. xy'yi x' y' cinsinden ifade etmek sorun değil. (1)'de değiştirmek de sorun değil.

Sonraki -- adım 1 ile xc üzerinde döngü ve adım 1 ile y üzerinde döngü

Ayrıca - alınan puanlar merzhim, basit görünüyor.

Tek sorun, değer aralığıdır. Burada düşünmek zorundasın.

 
TheXpert :

Bir elips ve bir yassı daire aynı şeydir.

Yani bir denklem var -- x^2/a^2 + y^2/b^2 = 1 -- bu bir elips. (1)

Sonraki - bir dönüşüm var. xy'yi x' y' cinsinden ifade etmek sorun değil. (1)'de değiştirmek de sorun değil.

Sonraki -- adım 1 ile xc üzerinde döngü ve adım 1 ile y üzerinde döngü

Ayrıca - alınan puanlar merzhim, basit görünüyor.

Tek sorun, değer aralığıdır. Burada düşünmek zorundasın.



Yassı bir daire ve bir elips aynıysa, y=k*sqr(r^2-x^2) bir elipstir.

x'ten y alırsanız ve döndürürseniz, piksellerin köşeleri olacaktır (örneğin piksel, alt piksel ve sağ piksel). Piksellerin herhangi bir şekilde elenmesi ve elde edilen noktaların bir çizgi ile birleştirilmesi çarpık görünecektir. Bir sürü yol denedim. Tek güzel yol, y' from x' işlevidir, eğer noktalar birbirinden bir pikselden daha uzaksa, bir çizgiyle bağlayın.

 
Kısacası, muhtemelen kutup sistemindeki noktaları hesaplar ve sonra 8'li bağlantı ilkesine göre fazlalıkları kaldırırdım.
 
TheXpert :
Kısacası, muhtemelen kutup sistemindeki noktaları hesaplar ve sonra 8'li bağlantı ilkesine göre fazlalıkları kaldırırdım.

Deneyeceğim.
 
Integer :


Yassı bir daire ve bir elips aynıysa, y=k*sqr(r^2-x^2) bir elipstir.

x'ten y alırsanız ve döndürürseniz, piksellerin köşeleri olacaktır (örneğin piksel, alt piksel ve sağ piksel). Piksellerin herhangi bir şekilde elenmesi ve elde edilen noktaların bir çizgi ile birleştirilmesi çarpık görünecektir. Bir sürü yol denedim. Tek güzel yol, y' from x' işlevidir, eğer noktalar birbirinden bir pikselden daha uzaksa, o zaman bir çizgi ile bağlayın.


sadece bir rengin çizilmesi gerekiyor, yoksa kenar yumuşatma ile bir raster olarak ayrıştırılabilir mi? Düzgünleştirme varsa, bir elips için Bresenham algoritmasının hazır bir uygulamasını arayabilirsiniz.

ZY işte başka bir şey http://www.geometrictools.com/Documentation/IntegerBasedEllipseDrawing.pdf

 
Avals :


sadece bir rengin çizilmesi gerekiyor, yoksa kenar yumuşatma ile bir raster olarak ayrıştırılabilir mi? Düzgünleştirme varsa, bir elips için Bresenham algoritmasının hazır bir uygulamasını arayabilirsiniz.

ZY işte başka bir şey http://www.geometrictools.com/Documentation/IntegerBasedEllipseDrawing.pdf


Tek renk, kenar yumuşatma varsa, her şeyin kenar yumuşatma ile yapılması gerekir.


* * *

Belki de elips sadece gelecek sezon olacak :)

Bir şey anladım tabii. Daha kesin olarak bulmadım, Renat'ın nasıl daire çizdiğini gözlemledim. Noktanın şeklin içinde olup olmadığını tüm alanı kontrol edin. Ardından bitmiş şekle dört taraftan yaklaşın ve taslağı boyayın. Bu durum ile bir sorun daha, döndürülmüş bir elips değilse de, bir çeyrek için hesaplamak ve yansıtmak gerekir. Döndürülmüşse, yarıya kadar sayın ve yansıtın. Ayrıca sektörler, dilimler çizebilmek için bir kesim yapmak istiyorum ...

 

Integer :

Döndürülmüşse, yarıya kadar sayın ve yansıtın. Ayrıca sektörler, dilimler çizebilmek için bir kesim yapmak istiyorum ...

Özellikle kutupsal koordinatlar!
 
TheXpert :
Özellikle kutupsal koordinatlar!


Kısmen, ama tam olarak değil. Her x ve y için kare bir alanda, önce bir dönüş yaparız, döndürülen x ve y'yi kutupsal koordinatlara çeviririz - noktanın merkezden (r) ve açıdan (fi) fi açısıyla mesafesini alırız , verilen yarıçap ve katsayıyı elipsin merkez olduğu uç noktanın uzaklığını hesaplıyoruz, r ile karşılaştırıyoruz ve noktanın içeride olup olmadığını öğreniyoruz.

Her durumda, dörde veya yarıya bölmek ve yansıtmak gerekecektir.

Hemen kutupsal koordinatlar çizerseniz, bazı noktaları temizlemeniz gerekir ve düz çizerseniz, bir konturla ana hatları çizmek daha kolaydır. Belki her şey böyle değildir, ancak göründüğünden daha fazla sorun olduğu açıktır.

Neden: