我想画一条带有面板的街道,但它不会工作。我希望它有一个循环,但我不能完成它。墙和屋顶必须比左边的房子小20%。
我的代码:
private void button1_Click(object sender, EventArgs e)
{
for (int i = 0; i < 5; i++)
{
HuisTekenen();
}
}
private void HuisTekenen()
{
gebouw();
dak();
}
private void gebouw()
{
Graphics paper;
paper = panel1.CreateGraphics();
Pen pennetje = new Pen(Color.Green);
int b = 100;
int aantal = 0;
for (int i = 10; aantal <= 5; i += 120)
{
paper.DrawRectangle(pennetje, i, 100, b, 150);
aantal++;
i = i / 100 * 80;
b = b / 100 * 80;
}
}
private void dak()
{
Graphics paper;
paper = panel1.CreateGraphics();
Pen pennetje = new Pen(Color.Red);
int b = 100;
int aantal = 0;
for (int i = 10; aantal <= 5; i+=120)
{
paper.DrawLine(pennetje, i, 10 / 100 * 80, i, b);
paper.DrawLine(pennetje, i, 10 / 100 * 80, i + 100, b);
aantal++;
i = i / 100 * 80;
b = 100 / 100 * 80;
}
}
你能帮助我吗?
谢谢!
答案 0 :(得分:1)
这是开始使用这个盒子的方法。你必须自己完成你的作业。
float size = 50;
float xpos = 0;
float ypos = 0;
for(int i=0;i<5;i++) //whatever you do, this must be what your loop looks like. anything else is going way off in the wrong direction
{
paper.DrawRectangle(pennetje, xpos, ypos, size, size);
xpos += size + 20;
size *= .8f;
}
答案 1 :(得分:0)
首先评论一下:你的for
- 语句很奇怪,通常这三个部分会使用相同的变量。它可以这样工作,但肯定不会这样做。
另一种问题是这句话:
i = i / 100 * 80;
变量i
为int
,/
执行整数除法,第一部分i / 100
将产生 0 < / strong>因为这是最接近real / float结果的int值。当然,将0乘以80将无能为力。
我建议你现在再试一次: - )