AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez
 

 Dessiner une ligne en utilisant juste draw_point

Aller en bas 
AuteurMessage
onilink_
Modérateur
onilink_

Messages : 9094
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Dessiner une ligne en utilisant juste draw_point Empty
MessageSujet: Dessiner une ligne en utilisant juste draw_point   Dessiner une ligne en utilisant juste draw_point EmptyJeu 1 Oct 2009 - 16:03

Voici deux algorithmes de tracés de ligne pour ceux qui
voudraient faire évoluer leur compétences mathématiques.
Ces algo n'utilisent qu'une fonction pour afficher un point et
des maths. Le premier utilise la trigo.
Le deuxième un peut plus compliqué est plus précise.

Trigo :
Code:

//void s_draw_line(x1,y1,x2,y2);
x1 = argument0
y1 = argument1
x2 = argument2
y2 = argument3
l = point_distance(x1,y1,x2,y2)
d = point_direction(x1,y1,x2,y2)

draw_point(x1,y1) ; draw_point(x2,y2) ;

for(i=0 ; i<=l ; i+=1)
{
  draw_point(x1 + cos(d*pi/180)*i
            ,y1 - sin(d*pi/180)*i)
}

Le deuxieme
Code:


  //trace une ligne selon l'algorithme de Lucas
  //void s_draw_line(x1,y1,x2,y2);

  x1 = argument0
  y1 = argument1
  x2 = argument2
  y2 = argument3

  Dx = abs(x2-x1);
  Dy = abs(y2-y1);

  if(x1<x2)
    xincr = 1;
  else
    xincr = -1;

  if(y1<y2)
    yincr = 1;
  else
    yincr = -1;

  x = x1;
  y = y1;

  if(Dx>Dy)
    {
      erreur = Dx/2;
      for(i=0;i<Dx;i+=1)
   {
     x += xincr;
     erreur += Dy;
     if(erreur>Dx)
       {
         erreur -= Dx;
         y += yincr;
       }
     draw_point(x,y);
   }

    }
  else
    {
      erreur = Dy/2;
      for(i=0;i<Dy;i+=1)
   {
     y += yincr;
     erreur += Dx;
     if(erreur>Dy)
       {
         erreur -= Dy;
         x += xincr;
       }
     draw_point(x,y);
   }
    }

Tout ceci peut etre utile si un jour vous venez a utiliser
le language C ou C++


Dernière édition par onilink_ le Mer 18 Aoû 2010 - 12:58, édité 1 fois
Revenir en haut Aller en bas
[TheDarkTiger]
Modérateur
[TheDarkTiger]

Messages : 7420
Localisation : Essonne

Dessiner une ligne en utilisant juste draw_point Empty
MessageSujet: Re: Dessiner une ligne en utilisant juste draw_point   Dessiner une ligne en utilisant juste draw_point EmptyVen 2 Oct 2009 - 0:14

C'est très intéressant, mais inutile sous GM.

Néanmoins, pour le C par exemple, c'est une très bonne chose.
L'algo de Lucas par exemple est très sympa.

_________________
Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^
Dessiner une ligne en utilisant juste draw_point U3dfr2 l'antique http://www.membres.lycos.fr/thedarkminousite/Dessiner une ligne en utilisant juste draw_point Sign
Bienvenue au 2544eme utilisateur : sachem !
Revenir en haut Aller en bas
http://www.tdms.fr
 
Dessiner une ligne en utilisant juste draw_point
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: