【发布时间】:2015-08-04 00:53:56
【问题描述】:
我创建了这个函数来绘制一个具有 n 个顶点的简单多边形:
void polygon (int n)
{
double pI = 3.141592653589;
double area = min(width / 2, height / 2);
int X = 0, Y = area - 1;
double offset = Y;
int lastx, lasty;
double radius = sqrt(X * X + Y * Y);
double quadrant = atan2(Y, X);
int i;
for (i = 1; i <= n; i++)
{
lastx = X; lasty = Y;
quadrant = quadrant + pI * 2.0 / n;
X = round((double)radius * cos(quadrant));
Y = round((double)radius * sin(quadrant));
setpen((i * 255) / n, 0, 0, 0.0, 1); // r(interval) g b, a, size
moveto(offset + lastx, offset + lasty); // Moves line offset
lineto(offset + X, offset + Y); // Draws a line from offset
}
}
如何用纯色填充它? 我不知道如何修改我的代码以绘制填充。
【问题讨论】:
-
你用什么库来画画?这不是标准的 C。猜测
fill(x,y,color),但在不知道库的情况下,这是 100% 的猜测。 -
这里不是要求代码增强的地方。尝试代码审查或论坛网站。
-
@John3136 不,这完全是标准 C 语言,并且不涉及任何库。我正在使用标准的、简单的、基本的、已知的绘图函数的简单实现来执行 VGA 编程。
-
@Olaf 增强功能 ??这是你第二次变得非常不可能。无法填充绘图是一个严重解决方案的问题。如果不是正确的填充方式,此功能将无法正常工作。它被视为无效代码。绝对不是为了代码审查。
-
您在询问如何扩展代码以填充创建的多边形。这是一个扩展(“增强是错误的术语 - 承认)。看看你过去的帖子,你似乎把它用作教程网站,而不是自己做一些研究。我称之为“社交黑客”。(哦,显然,我非常“可靠”)。
标签: c graphics geometry drawing trigonometry