Je fais un petit travail qui nécessite ce qui suit:
Je dois créer une boucle while qui dessine 30 lignes à l'écran. Les numéros de ligne 7 et de ligne 23 doivent être de couleur rouge.
Parce que j'essaie toujours de comprendre les choses, j'essaye de colorer les 2 lignes les plus proches de stroke (0); to stroke (255) ;, mais peu importe ce que j'essaye, je n'arrive pas à faire changer la couleur des 2 lignes
Dans cet exemple, j'ai essayé d'imbriquer une boucle while, qui jusqu'à présent ne fonctionne pas. J'ai également essayé de supprimer la boucle while imbriquée et d'ajouter une instruction "if" avec les mêmes variables (x == 40 && x == 60) mais rien ne se passe. Que puis-je faire pour résoudre ce problème?
var x = 20; var stap = 20; var stop = 600; function setup () { createCanvas(700, 700); } function draw () { stroke(0); while(x < stop) { line(x, 60, x, 80); x += stap; while (x == 40 && x == 60) { stroke(255); } } }
3 Réponses :
Vous définissez la couleur du trait dans votre instruction if après tracer la ligne. Assurez-vous de définir d'abord les couleurs, puis dessinez ce que vous allez dessiner.
La syntaxe d'une boucle while
est la suivante:
while (line_number <= 30) { y = step_size * line_number; // Determine which color to use if (line_number == 7 || line_number == 23) { // Set color to RED line_color = color(127, 0, 0); } else { // Set alternate color line_color = color(127, 127, 127); } // Set the color to draw the line stroke(line_color); // Draw a horizontal line line(0, y, width, y); // Go to the next line line_number++; }
Dans votre cas:
while (condition) { statements to execute while the condition is true }
p >
Vous êtes très proche, vous n'avez tout simplement pas besoin de cette boucle while interne!
Pour être complet, voici une solution p5:
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.7.2/p5.js"></script>
var x = 20; var stap = 20; var stop = 600; function setup() { createCanvas(700, 700); } function draw() { while (x < stop) { if (x === 20 || x === 40) { stroke(255, 0, 0); } else { stroke(0); } line(x, 60, x, 80); x += stap; } }
Vous avez dit que vous aimeriez avoir les deux plus proches à afficher, ces lignes sont en x position 20 et 40, plutôt que 40 et 60!
Puisque personne ne l'a mentionné:
while (x == 40 && x == 60)
signifie que la boucle continue de fonctionner pendant longtempsx == 40
etx == 60
. Puisquex
ne peut pas avoir 2 valeurs différentes en même temps, la condition n'est jamais remplie. Cela signifie que le corps de la boucle n'est jamais exécuté.Crossposted: discourse.processing.org/ t /…