Page 1 of 1
Calculer la distance entre deux points ?
Posted: 10 Jun 2014, 19:34
by SyymDrom
Bonjour, bonsoir !
Mes chers enfants, je viens vous conter une histoire... Nan j'décone.
Donc, ne passons pas par quatre chemins, voici ma question, comment calculer la distance entre deux points A(X;Y) et B(X;Y) ?
Imaginons que le point A soit placé exactement au centre de l'écran, et que le point B soit placé vers le haut à gauche de l'écran.
Donnons leur des coordonnés :
- A(691;391) <== Au centre de l'écran
- B(284;220) <== Vers le haut à gauche de l'écran
Donc je souhaite calculer la distance entre ces deux points..
Merci d'avance pour votre aide !
SyymDrom
Re: Calculer la distance entre deux points ?
Posted: 12 Jun 2014, 13:42
by Jmgr
Salut,
Pour calculer la distance d'un point à un autre tu peux utiliser un bout de code (triangle rouge) :
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<scriptfile>
<settings program="actionaz" version="3.8.0" scriptVersion="1.1.0" os="Windows"/>
<actions>
<action name="ActionMessageBox" version="1.0.0"/>
<action name="ActionVariable" version="1.0.0"/>
</actions>
<parameters/>
<resources/>
<script pauseBefore="0" pauseAfter="0">
<action name="ActionVariable">
<exception id="0" action="0" line=""/>
<exception id="1" action="0" line=""/>
<exception id="2" action="1" line=""/>
<exception id="32" action="0" line=""/>
<parameter name="colorValue">
<subParameter name="value" code="0"></subParameter>
</parameter>
<parameter name="variable">
<subParameter name="value" code="0">a</subParameter>
</parameter>
<parameter name="type">
<subParameter name="value" code="0">position</subParameter>
</parameter>
<parameter name="value">
<subParameter name="value" code="0"></subParameter>
</parameter>
<parameter name="positionValue">
<subParameter name="unit" code="0">0</subParameter>
<subParameter name="value" code="0">770:471</subParameter>
</parameter>
</action>
<action name="ActionVariable">
<exception id="0" action="0" line=""/>
<exception id="1" action="0" line=""/>
<exception id="2" action="1" line=""/>
<exception id="32" action="0" line=""/>
<parameter name="colorValue">
<subParameter name="value" code="0"></subParameter>
</parameter>
<parameter name="variable">
<subParameter name="value" code="0">b</subParameter>
</parameter>
<parameter name="type">
<subParameter name="value" code="0">position</subParameter>
</parameter>
<parameter name="value">
<subParameter name="value" code="0"></subParameter>
</parameter>
<parameter name="positionValue">
<subParameter name="unit" code="0">0</subParameter>
<subParameter name="value" code="0">132:121</subParameter>
</parameter>
</action>
<action name="ActionMessageBox">
<exception id="0" action="0" line=""/>
<exception id="1" action="0" line=""/>
<exception id="2" action="1" line=""/>
<parameter name="windowIcon">
<subParameter name="value" code="0"></subParameter>
</parameter>
<parameter name="message">
<subParameter name="value" code="1">"Distance : " + Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2)) + " pixels" </subParameter>
</parameter>
<parameter name="title">
<subParameter name="value" code="0"></subParameter>
</parameter>
<parameter name="textMode">
<subParameter name="value" code="0">automatic</subParameter>
</parameter>
<parameter name="ifYes">
<subParameter name="line" code="0"></subParameter>
<subParameter name="action" code="0">do_nothing</subParameter>
</parameter>
<parameter name="customIcon">
<subParameter name="value" code="0"></subParameter>
</parameter>
<parameter name="icon">
<subParameter name="value" code="0">none</subParameter>
</parameter>
<parameter name="type">
<subParameter name="value" code="0">ok</subParameter>
</parameter>
<parameter name="ifNo">
<subParameter name="line" code="0"></subParameter>
<subParameter name="action" code="0">do_nothing</subParameter>
</parameter>
</action>
</script>
</scriptfile>
Dans Actionaz, tu peux exécuter du code Javascript dans chacun des champs en activant le triangle rouge.
Re: Calculer la distance entre deux points ?
Posted: 13 Jun 2014, 18:04
by SyymDrom
Re,
Merci beaucoup de ton aide, cela fonctionne très bien, sauf que pour l'action pause, il faut une valeur exacte, je veux dire par là qu'il ne faut pas de virgule..
Donc j'aimerai savoir comment arrondir un nombre svp ? Merci beaucoup !
EDIT : J'ai trouvé la fonction Math.round, et voici ce que j'ai fais, ici ma variable pause est égale ) 1.49546...
J'ai réussi à créer une variable nommée nouvellepause qui arrondie la variable pause.. Mais je suis obligé de l'arrondir à 1 car l'action Pause refuse les nombres à virgules, est-il possible de quand même mettre des nombres à virgules dans les pauses ?
SyymDrom
Re: Calculer la distance entre deux points ?
Posted: 14 Jun 2014, 12:05
by Jmgr
Non, mais tu peux multiplier par 1000, arrondir (avec Math.round) et changer le second paramètre pour indiquer qu'il s'agit de millisecondes plutôt que de secondes.
Re: Calculer la distance entre deux points ?
Posted: 14 Jun 2014, 12:47
by SyymDrom
Excellente idée !
J'ai testé ça et cela fonctionne parfaitement ! Encore merci pour votre aide !