如问题所述,我想绘制一条从X,Y位置开始的线,例如鼠标方向上的10个像素...函数I已经绘制了一条线2点之间,但我想不出如何使用鼠标方向在鼠标方向上绘制一条具有恒定长度的线条
这里恒定lenght要做的只是功能:
void D3DGraphics::DrawLine(int x1,int y1,int x2,int y2,int r,int g,int blu)
{
int dx = x2 - x1;
int dy = y2 - y1;
if(dy == 0 && dx == 0)
{
PutPixel(x1,y1,r,g,blu);
}
else if(abs(dy) > abs(dx))
{
if(dy < 0)
{
int temp = x1;
x1 = x2;
x2 = temp;
temp = y1;
y1 = y2;
y2 = temp;
}
float m = (float)dx/(float)dy;
float b = x1 - m*y1;
for(int y = y1; y <= y2; y = y + 1)
{
int x = (int)(m*y + b + 0.5f);
PutPixel(x,y,r,g,blu);
}
}
else
{
if(dx < 0)
{
int temp = x1;
x1 = x2;
x2 = temp;
temp = y1;
y1 = y2;
y2 = temp;
}
float m = (float)dy/(float)dx;
float b = y1 - m*x1;
for(int x = x1; x <= x2; x = x + 1)
{
int y = (int)(m*x + b + 0.5f);
PutPixel(x,y,r,g,blu);
}
}
}
我也有获取鼠标的X和Y位置的函数在屏幕上(getmouseX(),getmouseY())
Aaand你会得到零分。 – SigTerm