これは文法よりも論理の問題である可能性があります。だれかが助けてくれるかどうかはわかりませんが、ループバックして転送する必要があるRectangle型のリストがあります。C#再描画矩形ロジック
リストには、左から右にランダムな幅と高さを持つ長方形のランダムな範囲が含まれています。私は、だから私はこれを行う最も簡単な方法は、最初の矩形を取得し、それを比較することだと思う彼らは、次の
___________ ____ l l l l l l l l ________ l l l__l___l______l l l l_____________l___l_________l l___________________________l
のように見えるように長方形を回転させる必要がある
___________
____ l l
l l l l
l l ________ l l
l l___l l l l
l l l l___l l
l__l___l______l___l_________l
次の1つに沿って。しかし、私はこれはそれが
に意味するように動作し、元の四角形を描画するためのコードである可能性インデックスの範囲を出て行くよので、私は動けなくなるに沿って次の四角形の値を取得しようとすると、
Graphics RectangleGraphics = DrawingSurface;
for (int x = 0; x < userInput; ++x)
{
int Height = myRectangleClass.genHeight();
int Width = myRectangleClass.genWidth();
RectangleGraphics.DrawRectangle(Pen, myRectangleClass.MyRectangle(startPositionX, (450 - Height), Width, Height));
ReadWrite.writeOutput(startPositionX, (450 - Height), Width, Height);
startPositionX = startPositionX + Width;
}
私は同じ形状を維持したまま、長方形を回転させるために、次のコードを使用しようとしていますが、私は明らかに範囲エラーの出る
Graphics RectangleGraphics = DrawingSurface;
int previousX = 0;
int width = 0;
int height = 0;
int xCoordinate = 0;
int yCoordinate = 0;
for (int i = 0; i < Rectangles.Count; ++i)
{
if ((Rectangles[i].X < Rectangles[i + 1].X) && (Rectangles[i].Height > Rectangles[i + 1].Height))
{
width = Rectangles[i].Width;
height = Rectangles[i].Height - Rectangles[i + 1].Height;
xCoordinate = Rectangles[i].X;
yCoordinate = 250 - height;
Rectangle DrawRec = myRectangleClass.MyRectangle(xCoordinate, yCoordinate, width, height);
RectangleGraphics.DrawRectangle(Pen, DrawRec);
}
}
私は次の場合には、現在の四角形を見てする必要があります長方形はより高価ですhは増加する必要がありますが、現在の高さよりも低い矩形に達すると停止する必要があります。その矩形に達すると、シリーズの最初の矩形ではなく後方に移動する必要があります。
長方形を再描画する方法についてご意見やご提案がありましたら、お知らせください。