如問題所述,我想繪製一條從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