CYBERMIX | FORUM

Hello, Guest !

We would like to invite you to join our community.

Register & Login now Smile

( " We are currently recruiting forum staffs " )
CYBERMIX | FORUM

Hello, Guest !

We would like to invite you to join our community.

Register & Login now Smile

( " We are currently recruiting forum staffs " )
. Login Register
CYBERMIX | FORUM

WE POST EVERYTHING YOU NEED


You are not connected. Please login or register

Like this topic? Then share our topic !

URL Direct
BBcode
HTML
D3D Crosshair Codes...

View previous topic View next topic Go down  Message [Page 1 of 1]

Post: #1Thu Feb 12, 2015 12:02 am

Anonymous

Guest

Guest
Globals: (Top of Code)
Code:
[You must be registered and logged in to see this link.] PI 3.14159265//Defining what PI is. PI is a Circle
int CenterX = GetSystemMetrics( 0 ) / 2-1;//Gets screen X resolution then cutting it in half to get the center.
int CenterY = GetSystemMetrics( 1 ) / 2-1;//Gets screen Y resolution then cutting it in half to get the center.
LPDIRECT3DDEVICE9 pDevice;
ID3DXLine *pLine;
Basic Crosshair:

Notes: When you see "CenterX-15" it means CenterX Minus 15 pixels.
Code:
//FillRGB(XPosition,YPosition,Width,Height,Color);
Function:
void FillRGB( int x, int y, int w, int h, D3DCOLOR color, IDirect3DDevice9* pDevice )
{
D3DRECT rec = { x, y, x + w, y + h };
pDevice->Clear( 1, &rec, D3DCLEAR_TARGET, color, 0, 0 );
}
//Drawing it:
FillRGB(CenterX-15, CenterY, 30, 1,Red,pDevice);//Diagonal line
FillRGB(CenterX, CenterY-15, 1, 30,Red,pDevice);//Vertical line
Circle Crosshair:

Code:
//DrawCircle(XPosition,YPosition,Radius,numSides,Col or);
Function:
void DrawCircle(int X, int Y, int radius, int numSides, DWORD Color)
{

D3DXVECTOR2 Line[128];
float Step = PI * 2.0 / numSides;
int Count = 0;
for (float a=0; a < PI*2.0; a += Step)
{
float X1 = radius * cos(a) + X;
float Y1 = radius * sin(a) + Y;
float X2 = radius * cos(a+Step) + X;
float Y2 = radius * sin(a+Step) + Y;
Line[Count].x = X1;
Line[Count].y = Y1;
Line[Count+1].x = X2;
Line[Count+1].y = Y2;
Count += 2;
}
pLine->Begin();
pLine->Draw(Line,Count,Color);
pLine->End();
}

// Drawing it:
DrawCircle(CenterX,CenterY,8,8,Red);
Dot Crosshair:

Notes: If you adjust the size you will have to adjust the position to suit.
Code:
Example:
DrawPoint(CenterX-10,CenterY-10, 10, 10, Green);
The size is now 10 so i -10 off the XY position to suit.


//DrawPoint(XPosition,YPosition,Width,Height,Color);
Function:
void DrawPoint(int x, int y, int w, int h, DWORD color)
{
FillRGB((int)x, (int)y, (int)w, (int)h, color);

}
Drawing it:
DrawPoint(CenterX-1,CenterY-1, 1, 1, Green);
Cross(X) Crosshair:

Notes: XPosStart YPosStart starts the line and then XPosFinish
YPosFinish is where the line will be drawn too.

Code:
//DrawLine(XPosStart,YPosStart,XPosFinish,YPosFinish ,Width,Color);
//Function:
void DrawLine(float x, float y, float x2, float y2, float width, DWORD color)
{
D3DXVECTOR2 vLine[2];
pLine->SetWidth( width );
pLine->SetAntialias( false );
pLine->SetGLLines( true );
vLine[0].x = x;
vLine[0].y = y;
vLine[1].x = x2;
vLine[1].y = y2;
pLine->Begin();
pLine->Draw( vLine, 2, color );
pLine->End();
}
//Drawing it:
DrawLine(CenterX+10,CenterY+10,CenterX-10,CenterY-10,1,Red);
DrawLine(CenterX-10,CenterY+10,CenterX+10,CenterY-10,1,Red);
Now that we have the main ones you can start merging them and making your own ones. You have all the functions so ill just give your a picture and the drawing code.


Code:
DrawCircle(CenterX,CenterY,8,8,Red);//Circle
FillRGB(CenterX-17, CenterY, 10, 1,Red,pDevice);//Left line
FillRGB(CenterX+9, CenterY, 10, 1,Red,pDevice); // Right line
FillRGB(CenterX, CenterY-17, 1, 10,Red,pDevice);//Top line
FillRGB(CenterX, CenterY+9, 1, 10,Red,pDevice);//Bottom line
DrawPoint(CenterX, CenterY, 1, 1, Green);//Dot point

Code:
FillRGB(CenterX-15, CenterY, 10, 1,Red,pDevice);//Left line
FillRGB(CenterX+6, CenterY, 10, 1,Red,pDevice);//Right line
FillRGB(CenterX, CenterY-15, 1, 10,Red,pDevice);//Top line
FillRGB(CenterX, CenterY+6, 1, 10,Red,pDevice);//Bottom line
DrawPoint(CenterX-1 , CenterY-1, 1, 1, Green);//Dot point

Code:
DrawCircle(CenterX-1,CenterY-1,8,8,Red);//Circle
FillRGB(CenterX-13, CenterY, 10, 1,Red,pDevice);//Left line
FillRGB(CenterX+4, CenterY, 10, 1,Red,pDevice);//Right line
FillRGB(CenterX, CenterY-13, 1, 10,Red,pDevice);//Top line
FillRGB(CenterX, CenterY+4, 1, 10,Red,pDevice);//Bottom line
DrawPoint(CenterX-1 , CenterY-1, 1, 1, Green);//Dot point

Code:
DrawLine(CenterX+15,CenterY+15,CenterX+3,CenterY+3 ,2,Red);// Bottom right to center
DrawLine(CenterX-15,CenterY+15,CenterX-3,CenterY+3,2,Red);//Bottom left to center
DrawLine(CenterX+15,CenterY-15,CenterX+3,CenterY-3,2,Red);//Top right to center
DrawLine(CenterX-15,CenterY-15,CenterX-3,CenterY-3,2,Red);//Top left to center
DrawPoint(CenterX,CenterY,1,1,Green);//Dot point

Code:
FillRGB(CenterX-20, CenterY, 40, 1,Purple,pDevice);//Purple
FillRGB(CenterX, CenterY-20, 1, 40,Purple,pDevice);

FillRGB(CenterX-17, CenterY, 34, 1,Blue,pDevice);//Blue
FillRGB(CenterX, CenterY-17, 1, 34,Blue,pDevice);

FillRGB(CenterX-14, CenterY, 28, 1,Cyan,pDevice);//Cyan
FillRGB(CenterX, CenterY-14, 1, 28,Cyan,pDevice);

FillRGB(CenterX-11, CenterY, 22, 1,Green,pDevice);//Green
FillRGB(CenterX, CenterY-11, 1, 22,Green,pDevice);

FillRGB(CenterX-9, CenterY, 18, 1,Yellow,pDevice);//Yellow
FillRGB(CenterX, CenterY-9, 1, 18,Yellow,pDevice);

FillRGB(CenterX-6, CenterY, 12, 1,Orange,pDevice);//Orange
FillRGB(CenterX, CenterY-6, 1, 12,Orange,pDevice);

FillRGB(CenterX-3, CenterY, 6, 1,Red,pDevice);//Red
FillRGB(CenterX, CenterY-3, 1, 6,Red,pDevice);

View previous topic View next topic Back to top  Message [Page 1 of 1]

Permissions in this forum:
You cannot reply to topics in this forum