Je crée un script pour déterminer si une forme a été déformée ou mise à l'échelle. Il commence par faire une liste de toutes les longueurs d'une ligne dans une forme, comme ça.AppleScript pour déterminer si une forme a été déformée ou mise à l'échelle
set noofsides to text returned of (display dialog "Enter number of sides:" default answer "")
set sidevalues to {}
set repeatnumber to 0
repeat noofsides times
set repeatnumber to repeatnumber + 1
set currentsidevalue to text returned of (display dialog "Enter length of line " & repeatnumber & ":" default answer "")
set the end of sidevalues to currentsidevalue
end repeat
Il fait ensuite la même chose pour la seconde forme éditée. Cela me donne deux listes avec différentes variables. Pour déterminer si les deux formes sont similaires, chaque ligne «avant» divisée par chaque ligne «après» doit être la même. Par exemple, pour un triangle:
firstline1/secondline1 = firstline2/secondline2 = firstline3/secondline3
Est-il possible de le faire rapidement sans avoir à effectuer les opérations suivantes:
try
set primevariable1 to first item of primesidevalues
set primevariable2 to second item of primesidevalues
set primevariable3 to third item of primesidevalues
-- ...
end try
try
set regularvariable1 to first item of sidevalues
set regularvariable2 to second item of sidevalues
set regularvariable3 to third item of sidevalues
-- ...
end try
try
variable4
on error
set variable4 to ""
end try
if (regularvariable1/primevariable1) = (regularvariable2/primevariable2) and (regularvariable3/primevariable3) = (regularvariable1/primevariable1) and (regularvariable3/primevariable3) = (regularvariable2/primevariable2) and variable4 = "" then
display dialog "Shape is similar"
end if
C'est seulement pour une 3 forme à sens unique. Si je voulais faire quelque chose avec say, 5 ou 6 côtés, cela deviendrait de plus en plus long. Peut-être quelque chose comme si diviser chaque nombre dans la liste un divisé par chaque nombre dans la liste deux tous égaux, alors la forme est similaire? Quelqu'un peut-il aider?
Existe-t-il des boucles et des variables indexées (listes/tableaux) dans applescript? – MBo
Oui, mais je ne suis pas sûr de savoir comment cela pourrait être implémenté ici. –
Semble 'set sidevalues to {}' indique que 'sidevalues' est une structure de données indexée – MBo