AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Xiaomi Mi Smart Camera 2K Standard Edition (design compact / support ...
11.39 €
Voir le deal

 

 Dessiner une ligne en pointillés.

Aller en bas 
2 participants
AuteurMessage
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Dessiner une ligne en pointillés. Empty
MessageSujet: Dessiner une ligne en pointillés.   Dessiner une ligne en pointillés. EmptySam 29 Oct 2011 - 3:09

Code:
// scr_draw_dotted(x1, y1, x2, y2);

var dist;
    dist=point_distance(argument0,argument1,argument2,argument3);

if(dist){
    var step;
        step=dist/max(abs(argument2-argument0),abs(argument3-argument1))*2;

    for ({var i;  i=0}; i<dist; i+=step)
        draw_point(argument0+i*(argument2-argument0)/dist,argument1+i*(argument3-argument1)/dist);

}else return false;
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Dessiner une ligne en pointillés. Empty
MessageSujet: Re: Dessiner une ligne en pointillés.   Dessiner une ligne en pointillés. EmptySam 29 Oct 2011 - 12:36

Pour ce genre de truc je te conseille d'utiliser la trigo.
Déjà c'est beaucoup plus intuitif, et en plus ça devrais être bien plus rapide car dans ta boucle tu te retrouve juste avec des multiplications.

Code:
var r, d, c, s, rr;
r = point_distance(argument0, argument1, argument2, argument3)
d = point_direction(argument0, argument1, argument2, argument3)
c = lengthdir_x(argument4, d)
s = lengthdir_y(argument4, d)
rr = 0

while(rr*argument4 < r) {
    draw_point(argument0 + c*rr, argument1 + s*rr)
    rr += 1
}

Et j'ai rajouté un paramètre : la séparation entre chaque point.

Voila voila :p

_________________
Dessiner une ligne en pointillés. Runningpotato1Dessiner une ligne en pointillés. TvF6GED Dessiner une ligne en pointillés. MdetltS
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Dessiner une ligne en pointillés. Empty
MessageSujet: Re: Dessiner une ligne en pointillés.   Dessiner une ligne en pointillés. EmptySam 29 Oct 2011 - 12:44

Merci Smile !
Hop modifié dans mon projet Smile.

C'est cool de partager ses scripts, d'une part on fait partager et d'une autre on nous aide à l'améliorer, c'est que du benef Smile
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Dessiner une ligne en pointillés. Empty
MessageSujet: Re: Dessiner une ligne en pointillés.   Dessiner une ligne en pointillés. EmptySam 29 Oct 2011 - 13:31

C'est le but de cette section :p

_________________
Dessiner une ligne en pointillés. Runningpotato1Dessiner une ligne en pointillés. TvF6GED Dessiner une ligne en pointillés. MdetltS
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


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

Dessiner une ligne en pointillés. Empty
MessageSujet: Re: Dessiner une ligne en pointillés.   Dessiner une ligne en pointillés. EmptySam 29 Oct 2011 - 13:44

D'ailleurs histoire d'étoffer un peu je t'ai fait un ptit script pour faire des lignes discontinues ou je sais pas comment ça s'appelle :p

Code:
var r, d, c, s, rr, t;
r = point_distance(argument0, argument1, argument2, argument3)
d = point_direction(argument0, argument1, argument2, argument3)
c = lengthdir_x(argument4, d)
s = lengthdir_y(argument4, d)
rr = 0

draw_primitive_begin(pr_linelist)
while((rr+1)*argument4 < r) {
    rr += argument4
    draw_vertex(argument0 + c*rr, argument1 + s*rr)
    rr += argument5
    draw_vertex(argument0 + c*rr, argument1 + s*rr)
}
draw_primitive_end()

parametres : xstart, ystart, xend, yend, separation, taille

_________________
Dessiner une ligne en pointillés. Runningpotato1Dessiner une ligne en pointillés. TvF6GED Dessiner une ligne en pointillés. MdetltS
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
Caly


Messages : 1285
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

Dessiner une ligne en pointillés. Empty
MessageSujet: Re: Dessiner une ligne en pointillés.   Dessiner une ligne en pointillés. EmptySam 29 Oct 2011 - 13:47

Merci beaucoup onilink_ ça me seras surement très utile pour mon système de window/input/list/etc..
Revenir en haut Aller en bas
Contenu sponsorisé





Dessiner une ligne en pointillés. Empty
MessageSujet: Re: Dessiner une ligne en pointillés.   Dessiner une ligne en pointillés. Empty

Revenir en haut Aller en bas
 
Dessiner une ligne en pointillés.
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: