Calculer la distance entre deux points ?

Vous voulez de l'aide ? Postez ici :)
Post Reply
SyymDrom
Posts: 9
Joined: 31 May 2014, 20:23

Calculer la distance entre deux points ?

Post 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
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Calculer la distance entre deux points ?

Post 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.
"My software never has bugs. It just develops random features."
SyymDrom
Posts: 9
Joined: 31 May 2014, 20:23

Re: Calculer la distance entre deux points ?

Post 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
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Calculer la distance entre deux points ?

Post 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.
"My software never has bugs. It just develops random features."
SyymDrom
Posts: 9
Joined: 31 May 2014, 20:23

Re: Calculer la distance entre deux points ?

Post by SyymDrom »

Excellente idée !

J'ai testé ça et cela fonctionne parfaitement ! Encore merci pour votre aide !
Post Reply