質問

線を使用して円を構築しようとしています。各線は円の中心から始まり、円の半径と同じ長さです。サインとコサインの波と一緒にループを使用して、サインとコサインを使用して円を構築して、 lineTo パラメーター。

私の問題は、ラインの厚さパラメーターです lineStyle. 。円の円周がどれほど大きくても、線の端を完全に一致させたいのですが、ラインの厚さの適切な方法を理解することはできません。

//this is what makes sense to me, but it still creates some gaps
lineThickness = 1 + (((nRadius * 2) * Math.PI) - 360) / 359;

for(var i:int = 0; i < 360; i++)
{
    // Convert the degree to radians.
    nRadians = i * (Math.PI / 180);

    // Calculate the coordinate in which the line should be drawn to.
    nX = nRadius * Math.cos(nRadians);
    nY = nRadius * Math.sin(nRadians);

    // Create and drawn the line.
    graphics.lineStyle(lineThickness, 0, 1, false, LineScaleMode.NORMAL, CapsStyle.NONE);
    graphics.moveTo(0, 0);
    graphics.lineTo(nX, nY);
}

ラインの端を円の円周で出会うには、ギャップなしで、残りのスペースを埋めるために線を広げる必要があります。私にとって理にかなっているが、機能しないのは、円周から360を差し引き、その数を線(359)の間に空のスロットの量で分割し、その数を1の厚さを追加することです。

私に関するものは、それです lineStyle 厚さパラメーターはaです Number, 、しかし、0〜255の間の値のみを取るように見えるので、1.354のような浮動小数点数が有効な厚さであるかどうかはわかりません。

役に立ちましたか?

解決

線の代わりにくさびとして描画し、これをコピーして新しいFLAに貼り付けて、私が意味することを確認することをお勧めします。

var nRadians : Number;

var nradius:number = 100;

var nx:number;

var NY:番号;

var forterx:number = nradius;

var fortery:number = 0;

//これは私にとって理にかなっているものですが、それでもいくつかのギャップが作成されます

var linethickness:number = 1 +(((nradius * 2) * math.pi)-360) / 359;

for(var i:int = 0; i <360; i ++){

//程度をラジアンに変換します。 nradians = i *(math.pi / 180);

// Calculate the coordinate in which the line should be drawn to.
nX = nRadius * Math.cos( nRadians );
nY = nRadius * Math.sin( nRadians );

// Create and drawn the line.
graphics.beginFill( Math.random() * 0xFFFFFF );
graphics.moveTo( 0, 0 );
graphics.lineTo( previousX, previousY );
graphics.lineTo( nX, nY );
graphics.lineTo( 0, 0 );
graphics.endFill();
previousX = nX;
previousY = nY;

}

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top