2017-12-26 10 views
0

キャンバスに円を描くことに問題があります。キャンバスに円を描くとうまくいきますが、後で四角形を描くと、円の色が四角形と同じ色に変わります。Javascript Canvas - 円が色を変更しています

これはしばらく私を悩ませています。ここで私が何を言っているかを実証するjsbinプロジェクトです:

https://jsbin.com/bajezudayi/edit?html,js,output 

このキャンバスにあなたが(図形を切り替えるには上部にあるチェックボックスに注意してください)丸と四角を描くことができます。

私は関数の引数ではなく、drawCircleの色変数を設定値に変更しようとしましたが、問題は解決しません。

function drawCircle(x,y,rad,col,ctx){ 
    // This function draws a circle on a canvas 
    ctx.save(); 
    ctx.translate(x,y); 
    ctx.beginPath(); 
    ctx.arc(0,0,rad,0,2*Math.PI,false); 
    ctx.fillStyle='red'; // rather than =col 
    ctx.fill(); 
    ctx.restore(); 
} 

私は私のキャンバスにアニメーションループを適用する場合は、さえ奇妙な効果があるため、この問題の起こり始めます。

これは何が起こっているのですか? ありがとうございます。

編集:

http://adam-day-com.stackstaging.com/orbital/index.html

は「ショーベクトルフィールド」ボックスをチェックしてみて、いくつかの惑星を追加します。 は、ここで私が現在働いている完全なプロジェクトです。ベクトルフィールドを描画する関数(アニメーションループで呼び出される)は、一連の薄いボックスを描画し、円の色をぼやけます。

答えて

2

私はctx.beginPath()ctx.closePath()を追加しました。これはあなたが望んだものですか? https://jsbin.com/ribiyodoru/edit?html,js,output

+0

ありがとうございます。これは私があなたと共有したjsbinプロジェクトでは機能しましたが、私の主なプロジェクトでは機能しません。あなたは質問に私の編集でそれをチェックアウトすることができます。ご協力ありがとうございました。それは正しい方向への始まりです。私は努力し続けます。 –

+0

@AdamDayここでもclosePathが使用されていませんか? http://adam-day-com.stackstaging.com/Orbital/js/drawArrow.jsとhttp://adam-day-com.stackstaging.com/Orbital/js/drawCircle.js – xadhix

+0

申し訳ありませんウェブホスティングサービスにアップロードすることができます。私はサーバー上のファイルを更新するのを忘れていました。それは今良いはずです –

関連する問題