Historique des modifications - Message

Message #1154

Sujet: Dessiner un cercle


Type Date Auteur Contenu
Dernière modification 18-01-2007 16:15:16 DeusXL
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 message 18-01-2007 16:13:14 DeusXL
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

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
556 invités en ligne
membre en ligne: -
RSS Feed