私は自分の脳をつかんで、効果をアニメーション化する方法を見つけようとしています。これは私がmath.stackexchange.comで尋ねた質問に関連しています。サイドノートとして問題を描く3Dスタイルの効果
https://math.stackexchange.com/questions/91120/equal-division-of-rectangles-to-make-total/
、私は上記の質問に定義された描画アルゴリズムを実装していない - 代わりに、それはより凝縮見えるように視点を変更するために、私自身を使用して。
固定3Dスタイルのエフェクトを描画することができましたが、ロジックの周りに脳をラッピングして、下にあるラインが自分の方向に向いているように見せているときに問題があります。
私のコードは次のように、各ボタンのクリックは、長方形のサイズを変更し、近くに移動させなければならない
List<double> sizes = new List<double>();
private void Form1_Load(object sender, EventArgs e)
{
for (int y = 1; y < 10; y++)
{
double s = ((240/2)/y)/4;
sizes.Add(s);
}
sizes.Add(0);
}
int offset = 0;
private void button1_Click(object sender, EventArgs e)
{
Bitmap b = new Bitmap(320, 480);
Graphics g = Graphics.FromImage(b);
Color firstColor = Color.DarkGray;
Color secondColor = Color.Gray;
Color c = firstColor;
int yOffset = 0;
for(int i = 0; i < sizes.Count; i++)
{
c = (i % 2 == 0) ? firstColor : secondColor;
int y = (int)Math.Round(b.Height - yOffset - sizes[i]);
int height = (int)Math.Round(sizes[i]);
g.FillRectangle(new SolidBrush(c), new Rectangle(0, y + offset, b.Width, height + offset));
yOffset += (int)sizes[i];
}
this.BackgroundImage = b;
offset+=1;
}
、です。しかし、私の四角形は成長するものではありません。私のロジックは大丈夫ですが、動く限りは動作しません。
だから私の質問は次のとおりです。
は、私は認識していないよ、この効果のための既存のアルゴリズムがあり、またはこれは私が思考上だと非常に単純なものでしょうか?私の論理を訂正したり、正しい方向に私を指し示す助けがあれば、非常に感謝しています。
無関係なサイドノートでは、あなたがクリックするたびに三つの異なる使い捨てのリソースを作成します。 "using"ステートメントでそれらをラップし、新しいBackgroundImageを新しいものに置き換えるときはそれを破棄してください。 –
@ Moozhe - これはロジックを取得するためのコード(button1とForm1のように)を捨てるだけなので、パフォーマンスについてはあまり心配していません。最終製品はiOSで開発される予定です。私は一般的な描画アルゴリズムを打ち破ろうとしています。 :) –
@ジョージ私はできることをした - あなたを満足させるかもしれない私の答えがある –