bresenham/midpointアルゴリズムを使って塗りつぶし円を作成するには2通りの方法があります。 しかし、2番目の方法は最初の方法よりもはるかに優れています。Bresenham/midpoint circleアルゴリズムを少し変更してより良い結果が得られます
私は2番目の1のように、しかし、最初 1の方法で結果を作成したいです。私は、現時点ではこれ一つで距離を計算するための正しい式を必要とするので、私は最初の方法でそれをしたい:
function calcDistance (pos,pos2,range){
var x1 = pos.hasOwnProperty('x') ? pos.x : pos[0],
y1 = pos.hasOwnProperty('y') ? pos.y : pos[1],
x2 = pos2.hasOwnProperty('x') ? pos2.x : pos2[0],
y2 = pos2.hasOwnProperty('y') ? pos2.y : pos2[1];
return Math.pow((x1-x2),2) + Math.pow((y1-y2),2) - Math.pow(range, 2)
};
ここjsfiddleです。
EDIT:最初のアプローチは、代わりに距離が<= 0
ときの距離が<= radius*radius*zoom
とき、点を描画する描画点のhere
あなたの質問は? –
@BrentWashburne私は第2のアプローチのような結果を作りたいと思いますが、最初のアプローチがあります。 – InsOp
あなたの 'calcDistance'関数は円を描くことと何が関係していますか?どちらのアプローチでも言及されていません。 –