我需要在面板上绘制一个灰色星座,如下所示。
直到现在我有一个存储grey encoding的列表。该列表存储一个绘制椭圆(星座)的符号对象,并在构造时采用三个参数... x和y位置以及灰色代码。
我需要在面板上绘制整个列表。必须遍历该列表,并且必须在面板上绘制每个sybmol。例如。为16符号。第一个符号将在位置0,0中绘制,y递增直到第四个符号。然后xOffset必须向右移动,以便在第四个符号的右侧绘制第五个符号。然后第六个高于第五个等等......一般来说,它们必须像正弦波一样被绘制..
sb.SetLocation(x, y);
gh.Controls.Add(sb);
if (gh.Controls.Count % 4 == 0) { x += sb.Width; }
y += sb.Height;
sb是Symbol类的一个实例。 上面的代码是绘制前四个符号但然后移动x然后我需要从下面画出符号..我需要以某种方式切换(y + = sb.Height)和(y - = sb.Height)当MODULO为0时,改变X偏移。任何想法,我该怎么办呢。感谢。
答案 0 :(得分:0)
在某处定义一个变量以保存您的操作(+或 - )
bool sign=true;
然后绘制像这样的开关
if (gh.Controls.Count+4 % 8 == 0) sign = false;
if (gh.Controls.Count % 8 == 0) sign = true;
if (sign && gh.Control.Count % 4 != 0) y+= sb.height;
if (!sign && gh.Control.Count % 4 != 0) y -= sb.heighht;
这为您提供了模式:
计数 / y值
1 / +
2 / +
3 / +
4 /相同
5 / -
6 / -
7 / -
8 /同样