Historique des modifications - Message

Message #1154

Sujet: Dessiner un cercle


TypeDateAuteurContenu
Dernière modification18-01-2007 16:15:16DeusXL
Allez j'en rajoute une couche, un cercle qui prend en paramètre un rayon et une precision (entre Epsilon, minimum et +inf, maximum), c'est du C++-pseudo mais facile facile :

function drawcircle(float r, float precision)
{
	float step = 1f / precision;
	for(float angle = 0f; angle < pi * 2f; angle += step)
	{
		x = cos(angle) * r;
		y = sin(angle) * r;
		drawpixel(x, y);
	}
}

Et maintenant, pour la sphère (qui n'est qu'une série de cercles bizarres) :
function drawcircle(float r, float precision)
{
	float step = 1f / precision;
	for(float sangle = 0f; sangle < pi * 2f; sangle += step)
	{
		for(float angle = 0f; angle < pi * 2f; angle += step)
		{
			// On réduit le nombre d'opérations trigo au possible.
			float sinsangle = sin(sangle); 
			x = cos(angle) * r * sinsangle;
			y = sin(angle) * r * sinsangle;
			z = r * cos(sangle);
			drawpixel(x, y, z);
		}
	}
}

PS : Je viens d'avoir une sacré hésitation sur la sphère alors si vous voulez me rattrapper, n'hésitez pas, j'ai peut-être fait une grosse erreur.
Création du message18-01-2007 16:13:14DeusXL
Allez j'en rajoute une couche, un cercle qui prend en paramètre un rayon et une precision (entre Epsilon, minimum et +inf, maximum), c'est du C++-pseudo mais facile facile :

function drawcircle(float r, float precision)
{
	float step = 1f / precision;
	for(float angle = 0f; angle < pi * 2f; angle += step)
	{
		x = cos(angle) * r;
		y = sin(angle) * r;
		drawpixel(x, y);
	}
}

Et maintenant, pour la sphère (qui n'est qu'une série de cercles bizarres) :
function drawcircle(float r, float precision)
{
	float step = 1f / precision;
	for(float sangle = 0f; sangle < pi * 2f; sangle += step)
	{
		for(float angle = 0f; angle < pi * 2f; angle += step)
		{
			// On réduit le nombre d'opérations trigo au possible.
			float sinsangle = sin(sangle); 
			x = cos(angle) * r * sinsangle;
			y = sin(angle) * r * sinsangle;
			z = r * cos(sangle);
			drawpixel(x, y, z);
		}
	}
}

PS : Je viens d'avoir une sacré hésitation sur la sphère alors si vous voulez me rattrapper, n'hésitez pas, j'ai peut-être fait une grosse erreur.

Retour

OptionsLiens officielsCaractéristiquesStatistiquesCommunauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1441 sujets
11339 messages
Dernier membre inscrit: Saidov17
91 invités en ligne
membre en ligne: -
RSS Feed