因此,我正在尝试编写一个程序,该程序通过每1度画一条线来画一个圆,并通过增加RGB(由Random启动)来改变颜色。
这是我到目前为止的代码
public static void drawCircle(int iRandR, int iRandG, int iRandB)
{
for (int x = 0; x < 359; ++x)
{
double dXAngle = 0;
double dYAngle = 0;
dXAngle = 300 + Math.Cos(x) + 200;
dYAngle = 300 + Math.Sin(x) + 200;
Pen pPen = new Pen(Color.FromArgb(255, iRandR, iRandG, iRandB));
Graphics gDraw;
int iXAngle = Convert.ToInt32(dXAngle);
int iYAngle = Convert.ToInt32(dYAngle);
gDraw.DrawLine(pPen, 300, 300, iXAngle, iYAngle); //Error called here
}
}
private void drawCircleButton_Click(object sender, EventArgs e)
{
int genRandR = 0;
int genRandG = 0;
int genRandB = 0;
Random rRand = new Random();
genRandR = rRand.Next(0, 255);
genRandG = rRand.Next(0, 255);
genRandB = rRand.Next(0, 255);
drawCircle(genRandR, genRandG, genRandB);
drawCircleButton.Hide();
}
唯一的问题是,编译器在上述行中存在问题,并且抛出“使用未分配的局部变量'gDraw'”的问题,我做了一些谷歌搜索,还有许多其他示例看起来像我的,但我不知道为什么我的是抛出此错误。
任何帮助将不胜感激。
您需要从某个地方传递所需的Graphics
实例作为参数。如Graphics
MSDN上所述,该类封装了GDI +绘图表面。它用于将各种绘图操作抽象到不同的显示设备(您的屏幕,位图,图元文件,甚至是打印)。
public static void DrawCircle(Graphics gDraw, int iRandR, int iRandG, int iRandB)
{
...
}
您可能是从Paint
事件处理程序或类似的程序中调用它的,您可以在其中访问Graphics
要绘制的对象。IE:
protected override void OnPaint(PaintEventArgs p)
{
var graphics = p.Graphics;
DrawCircle(graphics, ...);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句