setPixel 就是一个绘制点的函数。至于绘制直线,可以这样做:
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 ); // 绘制点}}
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
每个人心里都住着一个人,或眷念,或暗恋,或想念。
文章 0 评论 0
接受
发布评论
评论(1)
setPixel 就是一个绘制点的函数。
至于绘制直线,可以这样做:
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 ); // 绘制点
}
}