Forum Le CBNA

Le Forum du CBNA a pour but de vous aider dans l'utilisation de GameMaker. Premier forum Francophone sous GameMaker, vous trouverez des .gmd, .gm6, .gmk, scripts, logiciels et d'autres ressources sur Le CBNA.
 
AccueilAccueil  ­FAQFAQ  ­RechercherRechercher  ­S'enregistrerS'enregistrer  ­MembresMembres  ­ConnexionConnexion  
Poster un nouveau sujet   Répondre au sujetPartager | 
 

 Dessiner une ligne en utilisant juste draw_point

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
onilink_
Utilisateur moyen


Nombre de messages: 63
Localisation: Le vigan (Pres de Ganges)
Projet Actuel: Convertisseur : Projet .gm6 >> Projet C++ SDL + FMOD
Avancement:
10 / 10010 / 100


MessageSujet: Dessiner une ligne en utilisant juste draw_point   Jeu 1 Oct - 17:03

Voici deux algorithmes de tracés de ligne pour ceux qui
voudraient faire evoluer leur competences mathematiques.
Ces algo n'utilisent qu'une fonction pour afficher un point et
des maths. Le premier utilise la trigo.
Le deuxieme un peut plus compliqué est plus precis.

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++
Revenir en haut Aller en bas
[TheDarkTiger]
Modérateur 'Programmation'


Nombre de messages: 6165
Localisation: Essonne
Avancement:
0 / 1000 / 100


MessageSujet: Re: Dessiner une ligne en utilisant juste draw_point   Ven 2 Oct - 1: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 ^^

actuellement à Liverpool http://leaveherpool.canalblog.com/

Bienvenue au 1388eme utilisateur : lionelvader !
Revenir en haut Aller en bas
http://www.membres.lycos.fr/thedarkminousite/
 

Dessiner une ligne en utilisant juste draw_point

Voir le sujet précédent Voir le sujet suivant 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 :: Programmation :: Scripts GML-
Poster un nouveau sujet   Répondre au sujet