win7 是否支持SetPixel函数
1个回答
展开全部
setPixel 就是一个绘制点的函数。
至于绘制直线,可以这样做:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void drawLine( int x1, int y1, int x2, int y2 )
{
if ( x1 > x2 )
{
int tmp = x1;
x1 = x2;
x2 = tmp;
}
if ( y1 > y2 )
{
int tmp = y1;
y1 = y2;
y2 = tmp;
}
int width = x2 - x1;
int height = y2 - y1;
// 根据 x / y == width / height ,
// 可以知道,当假定 x 为 dx 时,那么 y = (height / width) * dx;
for ( int dx = 0; dx < width; ++dx )
{
float dyF = ( (float)height / (float)width ) * (float)dx;
int dy = int(dyF + 0.5);
setPixel( x1 + dx , y1 + dy ); // 绘制点
}
}
追问:
你复制粘贴也太顺手了吧喂
追答:
帮你找答案,你还这么?
至于绘制直线,可以这样做:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void drawLine( int x1, int y1, int x2, int y2 )
{
if ( x1 > x2 )
{
int tmp = x1;
x1 = x2;
x2 = tmp;
}
if ( y1 > y2 )
{
int tmp = y1;
y1 = y2;
y2 = tmp;
}
int width = x2 - x1;
int height = y2 - y1;
// 根据 x / y == width / height ,
// 可以知道,当假定 x 为 dx 时,那么 y = (height / width) * dx;
for ( int dx = 0; dx < width; ++dx )
{
float dyF = ( (float)height / (float)width ) * (float)dx;
int dy = int(dyF + 0.5);
setPixel( x1 + dx , y1 + dy ); // 绘制点
}
}
追问:
你复制粘贴也太顺手了吧喂
追答:
帮你找答案,你还这么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询