Accueil › Forums › Programmation WIMS › Programmation d’exercices OEF › Draw, vide
- Ce sujet contient 6 réponses, 3 participants et a été mis à jour pour la dernière fois par
Hilaire Fernandes, le il y a 2 mois et 1 semaine.
-
AuteurMessages
-
-
14 janvier 2023 à 11:51 #7582
Hilaire Fernandes
Participant::Bonjour,
Comment expliquer que draw soit incapable d’afficher un texte dont les coordonnées sont calculées et issue d’une matrice.
\integer{ deltaX = randint(0..10) } \integer{ deltaY = randint(0..4) } :Sommets du losange \matrix{ sommets = wims(eval -6 + \deltaX), wims(eval -1 + \deltaY) wims(eval -6 + \deltaX), wims(eval -6 + \deltaY) wims(eval -3 + \deltaX), wims(eval -2 + \deltaY) wims(eval -3 + \deltaX), wims(eval 3 + \deltaY) } \text{ sommetsPixel = } \for { p = 0 to 3 }{ \text{ sommetsPixel = slib(draw/convpixel \sommets[4 - \p;], 400, 400, -7, 8, -7, 8, 1, pixels) ; \sommetsPixel }
Lorsque j’examine le contenu de la matrice, ce sont des nombres, comme attendu:
\sommetsPixel => 132,159 ; 132,292 ; 212,186 ; 212,52 ;
Lorsque j’affiche l’instruction draw elle semble correcte aussi:
\text{ points = text black, \sommetsPixel[2;] , giant, B crosshair \sommetsPixel[1;], black } \points => text black, 132,292 , giant, B crosshair 132,159 , black
Le canvas est déclaré comme suit:
\draw{ 400, 400 }{ \repere \coordonnees \points }
Bizarrement si j’utilise la première ligne de la matrice, draw est capable de faire son travail. avec les ligne 2, 3 ou 4 les valeurs ne lui conviennent pas. D’ailleurs dans l’exemple ci-dessus la crois est bien construite.
Une idée ?
Merci
-
Ce sujet a été modifié le il y a 2 mois et 2 semaines par
Hilaire Fernandes.
-
Ce sujet a été modifié le il y a 2 mois et 1 semaine par
Hilaire Fernandes.
-
Ce sujet a été modifié le il y a 2 mois et 2 semaines par
-
14 janvier 2023 à 12:30 #7585
Hilaire Fernandes
Participant -
14 janvier 2023 à 14:14 #7586
bernadette
Maître des clés -
14 janvier 2023 à 15:11 #7587
lemaire
Participant::Bonjour,
On voit dans votre affichage du contenu de la variable sommetsPixel qu’il y a un point-virgule en trop à la fin.
\text{ sommetsPixel = slib(draw/convpixel \sommets[1;], 400, 400, -7, 8, -7, 8, 1, pixels)} \for { p = 2 to 4 }{ \text{ sommetsPixel = \sommetsPixel ; slib(draw/convpixel \sommets[\p;], 400, 400, -7, 8, -7, 8, 1, pixels) } }
fonctionne.
NB : si vous ajoutez au début de la commande draw les instructions xrange et yrange pour définir les coordonnées « mathématiques » des bords de l’image ; par exemple :
\draw{400,400}{xrange -7,8 yrange -7, 8 polygon red,\sommets[1;],\sommets[2;],\sommets[3;],\sommets[1;]}
vous n’aurez pas besoin de convertir les coordonnées des points à tracer en pixels.
-
14 janvier 2023 à 18:35 #7588
Hilaire Fernandes
Participant::Oui je sais pour le ; mais est-ce qu’une ligne supplémentaire vide est gênante? Cela ne devrait pas être le cas. Mais comme l’écrit Bernadette j’aurai du utiliser un type matrix, c’est peut-être la cause.
A Bernadette, je prends note que le type
text
ne sait pas gérer les retours à la ligne, pour séparer les lignes.Ok pour les x/y-range pour éviter les conversions, c’est plutôt une bonne chose. En revanche le script
repere
ne fonctionne plus lorsqu’il y a des x/y-range 🙁
Que faire ?-
Cette réponse a été modifiée le il y a 2 mois et 1 semaine par
Hilaire Fernandes.
-
Cette réponse a été modifiée le il y a 2 mois et 1 semaine par
Hilaire Fernandes.
-
Cette réponse a été modifiée le il y a 2 mois et 1 semaine par
-
-
14 janvier 2023 à 19:15 #7592
bernadette
Maître des clés -
14 janvier 2023 à 19:57 #7598
Hilaire Fernandes
Participant
-
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.