cours sketchup : Scripts Sketchup – nombres et opérateurs numériques
Dans ce cours Sketchup, nous rentrons dans le vif de Ruby pour Sketchup, en lisant le livre de Mattew Scarpino auquel nous nous référons, à savoir Automatic Sketchup – Creation 3D model in Sketchup, plusieurs précieuses informations méritent d’être partagées. Nous commençons l’étude du langage de script Sketchup à partir de la structure de données, dans ce cas, nous voyons des nombres et des opérateurs numériques.
cours sketchup / Table des matières
- Nombres entiers et à virgule flottante
- Opérateurs arithmétiques
- Ordre des opérations
- Conversions numériques dans Sketchup
- Avez-vous essayé de tester des nombres et des opérateurs dans Sketchup ?
Lors de la création de modèles SketchUp dans Ruby, l’une des tâches les plus courantes consiste à définir des points qui délimitent des lignes et des surfaces. Chaque point est composé de trois coordonnées numériques, il est donc crucial de comprendre comment Ruby gère la partie numérique.
Ce cours sketchup illustre les formats de nombre, les opérateurs et l’ordre des opérations.
Nombres entiers et à virgule flottante
Dans ce cours sketchup, nous traiterons deux types de nombres : les entiers et les valeurs à virgule flottante. Un entier appartient à l’ensemble des nombres naturels, un entier n’a pas de point décimal.
Le signe “+” devant le nombre indique une valeur positive et un “-” indique une valeur négative. Si aucun signe n’est donné, la valeur est supposée positive.
Tout comme les grands nombres sont normalement subdivisés avec des diviseurs appropriés, Ruby vous permet de séparer les grands nombres avec des traits de soulignement. Par exemple, le nombre 1 000 000 peut être exprimé sous la forme 1000 000 ou 1_000_000.
Pour vérifier cela, essayez ceci, ouvrez la console – menu fenêtre – entrez ce qui suit dans la ligne de commande :
5_000 / 4
Le résultat est 1250, comme si vous aviez entré 5000/4.
Le terme nombre à virgule flottante indique la méthode d’approximation des nombres réels et le traitement des données utilisé par les processeurs pour effectuer des opérations mathématiques
Les nombres à virgule flottante ont des décimales, divisées par le séparateur approprié. Le séparateur décimal divise la partie décimale de la partie entière.
En Ruby, chaque nombre à virgule flottante doit contenir au moins un chiffre avant et après la virgule décimale. C’est-à-dire que vous pouvez exprimer 1/2 sous la forme “0,5” ou “0,500”, mais jamais sous la forme “.5”.
Une valeur à virgule flottante peut être précédée de + ou – et peut être suivie de “et” pour définir un exposant. Les nombres à virgule flottante suivants sont valides : -25.4, 1.4959e11, 123_456.789_012 et 3.14159.
Ruby fournit d’autres types numériques, notamment des nombres complexes et des nombres rationnels. Mais pour les besoins de notre utilisation, c’est-à-dire pour créer des scripts fonctionnels pour notre travail, vous n’aurez besoin que d’entiers et de valeurs à virgule flottante.
Opérateurs arithmétiques
Ruby reconnaît tous les opérateurs arithmétiques courants utilisés en C et dans d’autres langages de programmation : +, -, * et /. Ceux-ci sont répertoriés dans le tableau 1 ci-dessous avec les opérateurs modulo et exposant.
Opérateur | Opération | résultat | virgule flottante |
+ | une addition | 4 + 5 = 9 | 4.0 + 5.0 = 9.0 |
– | une soustraction | 12 – 4 = 8 | 12.0 – 4.0 = 8.0 |
* | une multiplication | 7 * 3 = 21 | 7.0 * 3.0 = 21.0 |
/ | une division | 20 / 8 = 2 | 20.0 / 8.0 = 2.5 |
% | Modulation | 20 % 8 = 4 | 20.0 % 8.8 = 4.0 |
** | Exponentiel | 3 ** 2 = 9 | 3.0 ** 2.0 = 9.0 |
Il est important de voir comment le type de résultat (entier ou virgule flottante) est déterminé par les entrées numériques, c’est-à-dire par les opérandes. Si un entier est soustrait d’un autre, le résultat sera toujours un entier et il en va de même pour l’addition, la soustraction et la division.
Si un opérande est un entier et l’autre une valeur à virgule flottante, le résultat sera toujours une valeur à virgule flottante. Ceci est démontré dans les exemples suivants :
90 – 82 renvoie 8
90,0 – 82 renvoie 8,0
3 * 4 renvoie 12
3 * 4.0 renvoie 12.0
4/3 renvoie 1
4 / 3.0 renvoie 1.333333333333333
3/4 renvoie 0
3 / 4,0 renvoie 0,75
Les quatre dernières de ces expressions utilisent l’opérateur de division et au début, les résultats peuvent ne pas être évidents. Si l’un des opérandes est à virgule flottante, le résultat est le quotient à virgule flottante normal. Mais si les deux opérandes sont des entiers, comme pour les divisions vues dans l’exemple, le reste est ignoré et seul le résultat entier est renvoyé.
Pour obtenir le reste de la division entière, le cinquième opérateur du tableau est requis : l’opérateur modulo ou “%”. La meilleure façon de comprendre cela est par l’exemple.
Si 17 est divisé par 5, le résultat est 3 avec un reste de 2. En Ruby, cela signifie 17/5 = 3 et 17% 5 = 2. Si a divise également en b, le résultat de b% a sera toujours zéro.
Par conséquent, les expressions suivantes devraient avoir un sens :
8/16 renvoie 2 16 / 8.0 renvoie 2.0 16% 8 renvoie
Le dernier opérateur du tableau, **, effectue l’exponentiation, et a ** b est la même opération que a ^ b. Le deuxième opérande est l’exposant et définit combien de fois le premier opérande doit être multiplié par lui-même. Par exemple, 2 ** 3 renvoie 8 car 2 ^ 3 est égal à 8.
L’exposant ne doit pas être un entier et vous pouvez calculer les racines carrées en le fixant à 1/2 et les racines du cube en fixant l’exposant à 1/3. De même, si l’exposant est négatif, le résultat est l’inverse multiplicatif (1 / x) de l’opération avec un exposant positif. Par exemple, 2,0 ** -3 = 1 / (2,0 ** 3) = 1/8.
Les exemples suivants montrent des utilisations supplémentaires de l’opérateur ** :
4 ** 2 renvoie 16 4 ** -2 renvoie 0,0625 4 ** 0,5 renvoie 2,0 4 ** 0 renvoie 1 4 ** (1/2) renvoie 1 (l'exposant renvoie)
Opérer sur des valeurs numériques est une activité cruciale dans de nombreux projets SketchUp. Lorsque vous écrivez votre code, gardez à l’esprit que les opérations sur les entiers ne renvoient généralement que des entiers.
Pour obtenir un résultat en virgule flottante, l’un des opérandes doit être en virgule flottante.
Ordre des opérations
Si une commande Ruby contient plusieurs opérateurs numériques, les opérations ne sont pas nécessairement effectuées de gauche à droite.
Les règles suivantes doivent être appliquées dans l’ordre :
Effectuez toutes les opérations entre parenthèses de gauche à droite, sur les exposants de gauche à droite, de multiplication et de division de gauche à droite.
Effectuez toutes les opérations d’addition et de soustraction de gauche à droite.
Par exemple, regardez la commande suivante :
1 + 3 * (6 – 4) ** 3 / (1 + 3)
Ruby va d’abord calculer les opérations entre parenthèses : (6 – 4 = 2) et (1 + 3 = 4). Par la suite, il effectuera l’exponentiation (2 ^ 3 = 8) et l’équation devient :
1 + 3 * 8/4
Enfin, Ruby effectue la multiplication (3 * 8 = 24) et la division (24/4 = 6). La réponse finale est calculée comme 1 + 6 = 7.
cours sketchup / Conversions numériques dans Sketchup
Avant de quitter le sujet des nombres, il est important de mentionner les opérateurs fournis par SketchUp en plus de ceux décrits ci-dessus. Ceux-ci sont répertoriés dans le tableau 2 ci-dessous.
operator | Function | Example |
cm | Convert centimeters to inches | 2.54.cm = 1 |
degrees | Convert degrees to radians | 180.degrees = 3.14159265358979 |
feet | Convert feet to inches | 1.feet = 12.0 |
inch | Convert inches to length | |
km | Convert kilometers to inches | 1.km = 39370.0787401575 |
m | Convert meters to inches | 1.m = 39.3700787401575 |
mile | Convert miles to inches | 1.mile = 63360.0 |
mm | Convert millimeters to inches | 1.mm = 0.0393700787401575 |
radians | Convert radians to degrees | 3.14159265358979.radians = 180 |
to_cm | Convert inches to centimeters | 0.393700787401575.to_cm = 1 |
to_feet | Convert inches to feet | 12.to_feet = 1.0 |
to_inch | Convert length to inches | |
to_km | Convert inches to kilometers | 39370.0787401575.to_km = 1 |
to_l | Convert inches to length | |
to_m | Convert inches to meters | 39.3700787401575.to_m = 1 |
to_mile | Convert inches to miles | 63360.to_mile = 1.0 |
to_mm | Convert inches to millimeters | 0.0393700787401575.to_mm = 1 |
to_yard | Convert inches to yards | 36.to_yard = 1.0 |
yard | Convert yards to inches | 1.yard = 36.0 |
En interne, SketchUp stocke les valeurs de longueur en pouces, même si vous choisissez un modèle basé sur le système métrique.
Pour cette raison, la plupart des utilitaires de conversion du tableau 2 convertissent en pouces ou en pouces. Ces opérateurs diffèrent de ceux du tableau 1 en ce qu’ils sont accessibles en plaçant un point (.) après le numéro.
La troisième colonne montre comment ces opérateurs sont utilisés dans la pratique.
Par exemple, la commande suivante convertit une longueur de 72 pouces en mètres : 72.to_m
Le résultat est 1,8288 car 1,8288 mètres est la même longueur de 72 pouces.
Toutes les routines SketchUp traitant des angles nécessitent que les valeurs angulaires soient fournies en radians, et non en degrés. Mais comme il est plus facile de manipuler des nombres entiers, il est préférable de commencer par des degrés et de convertir l’angle en radians.
Par exemple, pour convertir 30 ° en radians, utilisez la commande suivante :
30 degrés
Cela peut prêter à confusion car nous convertissons à partir de degrés plutôt que de degrés. Cependant, les mesures angulaires seront fréquemment utilisées et, au final, l’utilisation de l’opérateur degrés deviendra naturelle.
cours sketchp : recommandations
Avez-vous essayé de tester des nombres et des opérateurs dans Sketchup ?
Faites-nous savoir si vous avez déjà testé du code dans SketchUp. Avez-vous suivi un chemin différent pour apprendre?
Nous pensons que le guide de Ruby sur html.it est bien élaoré. Il est utile de les suivre pour un premier essai.