質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

423閲覧

何本も線が引かれてしまいます。

usausa

総合スコア15

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/06/28 00:18

編集2020/06/28 01:29

前提・実現したいこと

線を引く処理が関数disp,disp2で行っています。
線を引く機能を実装中に以下の問題が発生しました。

発生している問題

例えば、X_Aで0を選択するとx軸の0に赤い引かれてます。その次4を選択するとx軸の4のところに赤い線が引かれます。
しかし、4を選択したら0の線がそのまま残ってします。4を選択したら0の線が消えるようにしたいです。
実行

###ソースコード

<!DOCTYPE html> <html long="ja"> <meta charset="utf-8"> <title>グラス</title> <body> <header> <h1 style="text-align:center">キャンバスでグラフ描画</h1> <h2 style="text-align:center">グラフを描画して二分法で解を求めます。</h2> </header> <script src="js/canvas.js"></script> <h3>グラフです。</h3> <canvas id="cv"width = 1000 height="600" align:center></canvas> </div> <script type="text/javascript"> // // type属性でしていする //キャンバス要素を取得 var cvs = document.getElementById("cv"); var ctx = cvs.getContext("2d"); var width = cv.width; var height = cv.height; var width2 = width/2; var height2 = height/2; function coordinate(){ //x軸 ctx.fillStyle = "rgb(0,180,0)"; ctx.moveTo(0,height2); ctx.lineTo(width,height2); ctx.stroke(); //y軸 ctx.fillStyle = "rgb(0,180,0)"; ctx.moveTo(width2,0); ctx.lineTo(width2,height); ctx.stroke(); for(var i= -22;i<22;i+=2){ //5ずつ ctx.fillText(i, (i*20)+width2,height2+10); } for(var i= -22;i<22;i+=2){ //2ずつ ctx.fillText(-i, width2+10, (i*20)+height2); } } function disp(){ var start = eval(document.nibun01.x_a.value); var start1 = (start*20) +width2; //読み込んだ値が違う時を移動する var start1 = (start*20) +width2; ctx.strokeStyle = "red"; console.log(start1); ctx.beginPath();//初期化 ctx.moveTo(start1,height2-100); ctx.lineTo(start1,height2+100); ctx.stroke(); } function del(){ ctx.clearRect(0,0,width,height); } function disp2(){ var start10 = eval(document.nibun01.x_b.value); start11 = (start10*20)+width2; console.log(start11); ctx.strokeStyle="blue"; //色の指定 ctx.beginPath();//初期化 ctx.moveTo(start11,height2-100); ctx.lineTo(start11,height2+100); ctx.stroke(); } coordinate(); disp(); disp2(); </script> </body> <br> <br> <FORM NAME="nibun01" > <p>処理:</p> <p>線を引く</p> <label for="num1">x_A</label> <input id ="num1"type="number" name="x_a" value="0"> <input type="button" value="表示" onclick="disp()"> <br> <label for="num2">x_B</label> <input id="num2"type="number" name="x_b" value="0"> <input type="button" value="表示" onclick="disp2()"> <div id = "output"></div> <label for="siki">式:</label> <input type="text" name="siki"> <input type="button" value="表示" onclick="disp3()"> </FORM> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

4を選択したら0の線が消えるようにしたいです。

なら、そのときに0の線を消す(というより背景と同じ色の線を描画する)コードを書く必要があります

投稿2020/06/28 00:47

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

usausa

2020/06/28 01:59

軸も一緒に消えてしまいます
y_waiwai

2020/06/28 02:04

なら軸も書き直せばいいかと
usausa

2020/06/28 06:19

やり方を教えてください。
y_waiwai

2020/06/28 06:23

たんに軸を描画する関数を呼べばいいだけでは
usausa

2020/07/23 00:21 編集

やり方がわからないので例を示して欲しいです。 書き直した方がいいところなどありましたら指摘してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問