gpt4 book ai didi

c# - 在Graphics.Drawing中使用未分配的局部变量

转载 作者:行者123 更新时间:2023-12-02 10:51:42 25 4
gpt4 key购买 nike

因此,我正在尝试编写一个程序,该程序通过每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 instance作为参数。如MSDN上所述,Graphics类封装了GDI +图形表面。它用于将各种绘图操作抽象到不同的显示设备(您的屏幕,位图,图元文件,甚至是打印)。

public static void DrawCircle(Graphics gDraw, int iRandR, int iRandG, int iRandB)
{
...
}

您可能是从 Paint事件处理程序或类似的事件处理程序调用的,您可以在其中访问要绘制到的 Graphics对象。即:
protected override void OnPaint(PaintEventArgs p)
{
var graphics = p.Graphics;
DrawCircle(graphics, ...);
}

关于c# - 在Graphics.Drawing中使用未分配的局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25577748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com