如何使一个p5.js绘图在我点击单选按钮时出现?

huangapple go评论98阅读模式
英文:

How do I make it so one p5.js drawing appears when I click a radio button?

问题

我已经创建了一个p5.js绘图,当你点击单选按钮时,p5.js绘图会发生变化。当我点击第一个单选按钮时,它正常工作,但当我点击第二个单选按钮时,以前的绘图仍然存在。我如何才能使第二个单选按钮点击时只出现一个绘图?

单选按钮的HTML代码:

  1. <input type="radio" name="radiobutton" value="one" id="button1" onchange="checkM()"/>
  2. <input type="radio" name="radiobutton" value="two" id="button2" onchange="checkS()"/>

JavaScript代码:

  1. var button1 = document.getElementById("button1");
  2. var button2 = document.getElementById("button2");
  3. function drawDonut() {
  4. console.log("重新绘制甜甜圈!");
  5. background(218, 24, 132);
  6. }
  7. function checkS(){
  8. document.getElementById("button1").checked = false;
  9. circle(200, 200, 200);
  10. }
  11. function checkM(){
  12. document.getElementById("button2").checked = false;
  13. circle(100, 100, 100);
  14. }
  15. function setup() {
  16. myCanvas = createCanvas(400, 400);
  17. drawDonut();
  18. }

谢谢。

英文:

I have created a p5.js drawing wherein when you click a radio button the p5.js drawing changes. When I click the first radio button, it works fine, but then I click the second one and the former drawing is still there. How do I make it so only one drawing appears when I click the second radio button?

Radio button html:

  1. &lt;input type=&quot;radio&quot; name=&quot;radionbutton&quot; value=&quot;one&quot; id=&quot;button1&quot; onchange=&quot;checkM()&quot;/&gt;
  2. &lt;input type=&quot;radio&quot; name=&quot;radionbutton&quot; value=&quot;two&quot; id=&quot;button&quot; onchange=&quot;checkS()&quot;/&gt;

Javascript:

  1. var button1 = document.getElementById(&quot;button1&quot;);
  2. var button2 = document.getElementById(&quot;button2&quot;);
  3. function drawDonut() {
  4. console.log(&quot;Redrawing our donut!&quot;);
  5. background(218, 24, 132);
  6. }
  7. function checkS(){
  8. document.getElementById(&quot;button&quot;).checked;
  9. circle(200,200,200);
  10. }
  11. function checkM(){
  12. document.getElementById(&quot;button1&quot;).checked;
  13. circle(100,100,100);
  14. }
  15. function setup() {
  16. myCanvas = createCanvas(400, 400);
  17. drawDonut();
  18. }

Thank you.

答案1

得分: 0

我尝试进行显示和移除圆圈的处理过程,位于 p5js draw() 函数 中,如下所示。

  1. var button1 = document.getElementById("button1");
  2. var button2 = document.getElementById("button2");
  3. function draw() {
  4. background(218, 24, 132);
  5. if (button1.checked) {
  6. circle(200,200,200)
  7. }
  8. if (button2.checked) {
  9. circle(100,100,100)
  10. }
  11. }
  12. function checkS() {
  13. button1.checked;
  14. }
  15. function checkM() {
  16. button2.checked;
  17. }
  18. function setup() {
  19. myCanvas = createCanvas(400, 400);
  20. }
  1. html,
  2. body {
  3. margin: 0;
  4. padding: 0;
  5. }
  6. canvas {
  7. display: block;
  8. }
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.6.0/p5.js"></script>
  5. <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.6.0/addons/p5.sound.min.js"></script>
  6. <link rel="stylesheet" type="text/css" href="style.css">
  7. <meta charset="utf-8" />
  8. </head>
  9. <body>
  10. <main>
  11. </main>
  12. <input type="radio" name="radionbutton" value="one" id="button1" onchange="checkS()" />
  13. <label for="button1">S</label><br>
  14. <input type="radio" name="radionbutton" value="two" id="button2" onchange="checkM()" />
  15. <label for="button2">M</label><br>
  16. <script src="sketch.js"></script>
  17. </body>
  18. </html>
英文:

My attempt is to do the process of displaying and removing the circles inside p5js draw() function like so.

<!-- begin snippet: js hide: false console: true babel: false -->

<!-- language: lang-js -->

  1. var button1 = document.getElementById(&quot;button1&quot;);
  2. var button2 = document.getElementById(&quot;button2&quot;);
  3. function draw() {
  4. background(218, 24, 132);
  5. if (button1.checked) {
  6. circle(200,200,200)
  7. }
  8. if (button2.checked) {
  9. circle(100,100,100)
  10. }
  11. }
  12. function checkS() {
  13. button1.checked;
  14. }
  15. function checkM() {
  16. button2.checked;
  17. }
  18. function setup() {
  19. myCanvas = createCanvas(400, 400);
  20. }

<!-- language: lang-css -->

  1. html,
  2. body {
  3. margin: 0;
  4. padding: 0;
  5. }
  6. canvas {
  7. display: block;
  8. }

<!-- language: lang-html -->

  1. &lt;!DOCTYPE html&gt;
  2. &lt;html lang=&quot;en&quot;&gt;
  3. &lt;head&gt;
  4. &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.6.0/p5.js&quot;&gt;&lt;/script&gt;
  5. &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.6.0/addons/p5.sound.min.js&quot;&gt;&lt;/script&gt;
  6. &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;style.css&quot;&gt;
  7. &lt;meta charset=&quot;utf-8&quot; /&gt;
  8. &lt;/head&gt;
  9. &lt;body&gt;
  10. &lt;main&gt;
  11. &lt;/main&gt;
  12. &lt;input type=&quot;radio&quot; name=&quot;radionbutton&quot; value=&quot;one&quot; id=&quot;button1&quot; onchange=&quot;checkS()&quot; /&gt;
  13. &lt;label for=&quot;button1&quot;&gt;S&lt;/label&gt;&lt;br&gt;
  14. &lt;input type=&quot;radio&quot; name=&quot;radionbutton&quot; value=&quot;two&quot; id=&quot;button2&quot; onchange=&quot;checkM()&quot; /&gt;
  15. &lt;label for=&quot;button2&quot;&gt;M&lt;/label&gt;&lt;br&gt;
  16. &lt;script src=&quot;sketch.js&quot;&gt;&lt;/script&gt;
  17. &lt;/body&gt;
  18. &lt;/html&gt;

<!-- end snippet -->

huangapple
  • 本文由 发表于 2023年5月29日 09:06:46
  • 转载请务必保留本文链接:https://go.coder-hub.com/76354162.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定