PHCreed

PHCreed Unlimitboard Online Tambayan
 
HomePortalCalendarGalleryFAQSearchMemberlistUsergroupsRegisterLog in

Share | 
 

 D3D Crosshair Codes...

Go down 
AuthorMessage
Admin
Admin
Admin
avatar

Posts : 92
Join date : 17/02/2013
Age : 23
Location : iloilo

PostSubject: D3D Crosshair Codes...   Fri Feb 22, 2013 6:10 pm

Globals: (Top of Code)
Code:
#define 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:
Code:
//FillRGB(XPosition,YPosition,Width,Height,Color);
Notes: When you see "CenterX-15" it means CenterX Minus 15 pixels.
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);

[COLOR="DarkOrange"]Function:[/COLOR]

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:
Code:
Example:
Notes: If you adjust the size you will have to adjust the position to suit
 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);

[COLOR="DarkOrange"]Function:[/COLOR]

void DrawPoint(int x, int y, int w, int h, DWORD color)

{

        FillRGB((int)x, (int)y, (int)w, (int)h, color);


}

[COLOR="DarkOrange"]Drawing it:[/COLOR]

DrawPoint(CenterX-1,CenterY-1, 1, 1, Green);

Cross(X) Crosshair:
Code:

        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);

____________________________________________________

Credits: Crime_llocca
Rusty
ac1d_buRn - Some Functions
CodeDemon - Some Functions
Back to top Go down
View user profile http://phcreed.forumeiros.com
 
D3D Crosshair Codes...
Back to top 
Page 1 of 1

Permissions in this forum:You cannot reply to topics in this forum
PHCreed :: Programming :: C++-
Jump to: