Draw a Circle Using Cpp
The code below is a simple fashion of drawing a circumvolve without using fancy functions to jump to any capricious called x or y position.
#include <iostream> #include <math.h> using namespace std; int pth (int x,int y) { return sqrt (pw(10,2)+pw(y,2)); } int primary ( ) { int c=0; int r=10; const int width=r; const int length=r*1.5; for (int y=width;y >= -width;y-=2) { for (int 10=-length;10 <= length;10++) { if ((int) pth(x,y)==r) cout << "*"; else cout << " "; } cout << "\n"; } cin.go(); return 0; }
If you want more than advanced code and you are on the windows platform and you employ Visual Studio to create programs then the code below would be of intrest.
It uses functions like SetConsoleCursorPosition()
to fix ten
and y
positions, SetConsoleTextAttribute()
to prepare colors. The lawmaking draws lines , pixels, rectangles and circles in the console text window.
#include<stdio.h> #include <iostream> #include <stdio.h> #include <math.h> #include <time.h> #include <windows.h> using namespace std; void gotoxy(int x, int y); void setcolor(WORD colour); void setForeGroundAndBackGroundColor(int ForeGroundColor,int BackGroundColor); void clearscreen(); void drawpixel( unsigned char 10, unsigned char y, unsigned char Color); void drawpixel2( unsigned char x, unsigned char y, unsigned char Color, char character); void drawcircle(int 10, int y, int a, int b, int color); void drawline(int x0, int y0, int x1, int y1, int colour); void drawfilledrectangle(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,unsigned char bkcol); void drawframe(unsigned x,unsigned y,unsigned sx,unsigned sy,unsigned char col,unsigned char col2,char text_[]); void drawwindow(unsigned x,unsigned y,unsigned sx,unsigned sy,unsigned char col,unsigned char col2,unsigned char bkcol,char text_[]); void drawcolorpalette(); int main(void){ setcolor(15); clearscreen(); drawwindow(iii,2,77,15,31,31,31,"a window is drawn"); int X = xl; int Y = 12; int rad = viii; int col = xv; double deg = 0; // draw a circle using sin( ) and cos( ) exercise { X = (int) (rad * cos(deg)); Y = (int) (rad * sin(deg)); drawpixel2 (40+10, 12+Y, col, '*' ); deg += 0.005; } while (deg <= 6.4); drawcircle(60, 10, viii, eight, 15); drawline(1,1,77,22,15); gotoxy(forty,4); cout<<"Another circle is drawn."; gotoxy(sixty,22); cout<<"A Line is drawn."; gotoxy(20,13); cout<<"A circle is fatigued."; setcolor(vii); gotoxy(1,23); cin.ignore(); cin.get(); return 0; } //***************************************************************************** void gotoxy(int 10, int y){ COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); return; } //***************************************************************************** void setcolor(Give-and-take color){ SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),color); return; } // // colors: // 0 = Black // i = Bluish // 2 = Dark-green // 3 = Cyan // 4 = Scarlet // five = Magenta // vi = Yellow // 7 = LightGray // 8 = DarkGray // ix = LightBlue // x = LightGreen // 11 = LightCyan // 12 = LightRed // 13 = LightMagenta // fourteen = LightYellow // 15 = White // //***************************************************************************** void setForeGroundAndBackGroundColor(int ForeGroundColor,int BackGroundColor){ int color=16*BackGroundColor+ForeGroundColor; setcolor(colour); } //***************************************************************************** void clearscreen(){ COORD coordScreen = { 0, 0 }; DWORD cCharsWritten; CONSOLE_SCREEN_BUFFER_INFO csbi; DWORD dwConSize; HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(hConsole, &csbi); dwConSize = csbi.dwSize.X * csbi.dwSize.Y; FillConsoleOutputCharacter(hConsole, TEXT(' '), dwConSize, coordScreen, &cCharsWritten); GetConsoleScreenBufferInfo(hConsole, &csbi); FillConsoleOutputAttribute(hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten); SetConsoleCursorPosition(hConsole, coordScreen); render; } //***************************************************************************** void drawpixel( unsigned char ten, unsigned char y, unsigned char Color){ setcolor(Color); gotoxy(x,y);printf("Û"); } //***************************************************************************** void drawpixel2( unsigned char 10, unsigned char y, unsigned char Colour, char grapheme){ setcolor(Color); gotoxy(x,y);printf("%c",grapheme); } //***************************************************************************** void drawcircle(int x, int y, int a, int b, int color){ int wx, wy; int thresh; int asq = a * a; int bsq = b * b; int xa, ya; drawpixel(x, y+b, colour); drawpixel(x, y-b, colour); wx = 0; wy = b; xa = 0; ya = asq * 2 * b; thresh = asq / 4 - asq * b; for (;;) { thresh += xa + bsq; if (thresh >= 0) { ya -= asq * 2; thresh -= ya; wy--; } xa += bsq * 2; wx++; if (xa >= ya) break; drawpixel(x+wx, y-wy, color); drawpixel(x-wx, y-wy, color); drawpixel(x+wx, y+wy, color); drawpixel(x-wx, y+wy, color); } drawpixel(x+a, y, color); drawpixel(x-a, y, color); wx = a; wy = 0; xa = bsq * 2 * a; ya = 0; thresh = bsq / 4 - bsq * a; for (;;) { thresh += ya + asq; if (thresh >= 0) { xa -= bsq * 2; thresh = thresh - xa; wx--; } ya += asq * two; wy++; if (ya > xa) break; drawpixel(x+wx, y-wy, colour); drawpixel(x-wx, y-wy, color); drawpixel(ten+wx, y+wy, color); drawpixel(x-wx, y+wy, color); } } //***************************************************************************** void drawline(int x0, int y0, int x1, int y1, int color){ int pix = color; int dy = y1 - y0; int dx = x1 - x0; int stepx, stepy; if (dy < 0) { dy = -dy; stepy = -1; } else { stepy = 1; } if (dx < 0) { dx = -dx; stepx = -1; } else { stepx = 1; } dy <<= 1; // dy is now two*dy dx <<= 1; // dx is now 2*dx drawpixel( x0, y0,pix); if (dx > dy) { int fraction = dy - (dx >> i); // aforementioned as ii*dy - dx while (x0 != x1) { if (fraction >= 0) { y0 += stepy; fraction -= dx; // aforementioned equally fraction -= 2*dx } x0 += stepx; fraction += dy; // same as fraction -= two*dy drawpixel( x0, y0,pix); } } else { int fraction = dx - (dy >> 1); while (y0 != y1) { if (fraction >= 0) { x0 += stepx; fraction -= dy; } y0 += stepy; fraction += dx; drawpixel( x0, y0,pix); } } } //***************************************************************************** void drawframe(unsigned x,unsigned y,unsigned sx,unsigned sy,unsigned char col,unsigned char col2,char text_[]) { unsigned i,j,m; { thousand=(sx-ten); //differential j=1000/8; //adjust j=j-one; //more adjustment gotoxy(x,y);printf("É"); //Top left corner of box gotoxy(sx,y);printf("»"); //Acme right corner of box gotoxy(10,sy);printf("È"); //Bottom left corner of box gotoxy(sx,sy);printf("¼"); //Bottom right corner of box for (i=x+ane;i<sx;i++) { gotoxy(i,y);printf("Í"); // Tiptop horizontol line gotoxy(i,sy);printf("Í"); // Bottom Horizontal line } for (i=y+i;i<sy;i++) { gotoxy(x,i);printf("º"); //Left Vertical line gotoxy(sx,i);printf("º"); //Correct Vertical Line } gotoxy(x+j,y);printf(text_); //put Title gotoxy(1,24); } } //***************************************************************************** void drawfilledrectangle(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2,unsigned char bkcol) { int x,y; setcolor(bkcol); //Set to color bkcol for (y=y1;y<y2;y++) //Fill up Y Region Loop { for (x=x1;x<x2;x++) //Fill X region Loop { gotoxy(10,y);printf(" "); //Draw Solid space } } } //***************************************************************************** void drawwindow(unsigned x,unsigned y,unsigned sx,unsigned sy, unsigned char col, unsigned char col2,unsigned char bkcol,char text_[]) { drawfilledrectangle(x,y,sx,sy,bkcol); drawframe(ten,y,sx,sy,col,col2,text_); } void drawcolorpalette() { for (int i=0;i<16;i++) { for (int j=0;j<16;j++) { setForeGroundAndBackGroundColor(i,j); gotoxy(i*four,j);printf("%d",(i*j)+1); } } }
Source: https://stackoverflow.com/questions/38843226/how-to-draw-a-circle-with-stars-in-c
0 Response to "Draw a Circle Using Cpp"
Post a Comment