Draw a Circle With Asterisk in C

enter image description here

The code beneath is a unproblematic style of drawing a circle without using fancy functions to spring to any arbitrary chosen x or y position.

          #include <iostream> #include <math.h>  using namespace std;  int pth (int x,int y)  {     return sqrt (pow(ten,2)+pow(y,2));  }  int principal ( )  {      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 x=-length;x <= length;x++)  {              if ((int) pth(x,y)==r) cout << "*";             else cout << " ";           }          cout << "\northward";      }      cin.get();  return 0;  }                  

If you desire more than advanced lawmaking and y'all are on the windows platform and y'all use Visual Studio to create programs then the code below would exist of intrest.

It uses functions like SetConsoleCursorPosition() to ready ten and y positions, SetConsoleTextAttribute() to set colors. The code draws lines , pixels, rectangles and circles in the panel text window.

enter image description here

          #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(Discussion color); void setForeGroundAndBackGroundColor(int ForeGroundColor,int BackGroundColor); void clearscreen(); void drawpixel( unsigned char 10, unsigned char y, unsigned char Color); void drawpixel2( unsigned char ten, unsigned char y, unsigned char Colour, char character); void drawcircle(int x, 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(xv);     clearscreen();     drawwindow(iii,2,77,15,31,31,31,"a window is drawn");      int Ten = 40;     int Y = 12;     int rad = 8;     int col = 15;     double deg = 0;      // depict a circle using sin( ) and cos( )     exercise {          Ten = (int) (rad * cos(deg));          Y = (int) (rad * sin(deg));          drawpixel2 (40+X, 12+Y,  col, '*' );          deg +=  0.005;     }   while (deg <= 6.4);         drawcircle(lx, 10, 8, 8, 15);      drawline(1,one,77,22,15);      gotoxy(40,iv);     cout<<"Some other circle is drawn.";       gotoxy(60,22);     cout<<"A Line is drawn.";      gotoxy(twenty,13);     cout<<"A circle is drawn.";        setcolor(7);     gotoxy(ane,23);     cin.ignore();     cin.get();  return 0; }   //*****************************************************************************  void gotoxy(int 10, int y){     COORD coord;     coord.Ten = x; coord.Y = y;     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);     return; }  //*****************************************************************************  void setcolor(Give-and-take color){     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),color);     render; }   // //     colors: //     0 = Black //     1 = Blue //     2 = Green //     three = Cyan //     4 = Red //     five = Magenta //     6 = Xanthous //     7 = LightGray //     viii = DarkGray //     9 = LightBlue //     10 = LightGreen //     11 = LightCyan //     12 = LightRed //     thirteen = LightMagenta //     xiv = 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.Ten * 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 10, unsigned char y, unsigned char Color){         setcolor(Color);         gotoxy(ten,y);printf("Û"); }  //*****************************************************************************  void drawpixel2( unsigned char x, unsigned char y, unsigned char Colour, char character){         setcolor(Color);         gotoxy(ten,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(ten, y+b, color);     drawpixel(x, y-b, color);      wx = 0;     wy = b;     xa = 0;     ya = asq * 2 * b;     thresh = asq / 4 - asq * b;      for (;;) {         thresh += xa + bsq;          if (thresh >= 0) {             ya -= asq * two;             thresh -= ya;             wy--;         }          xa += bsq * 2;         wx++;          if (xa >= ya)           interruption;           drawpixel(ten+wx, y-wy, colour);         drawpixel(x-wx, y-wy, color);         drawpixel(ten+wx, y+wy, color);         drawpixel(x-wx, y+wy, colour);     }      drawpixel(ten+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 * 2;         wy++;          if (ya > xa)           suspension;          drawpixel(x+wx, y-wy, color);         drawpixel(x-wx, y-wy, color);         drawpixel(x+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 = -one; } else { stepx = 1; }     dy <<= one;                                                  // dy is at present two*dy     dx <<= 1;                                                  // dx is now two*dx    drawpixel( x0, y0,pix);     if (dx > dy) {         int fraction = dy - (dx >> 1);                         // same equally 2*dy - dx         while (x0 != x1) {             if (fraction >= 0) {                 y0 += stepy;                 fraction -= dx;                                // same as fraction -= 2*dx             }             x0 += stepx;             fraction += dy;                                    // same as fraction -= 2*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;     {         k=(sx-ten);                       //differential        j=k/8;                          //adjust        j=j-1;                          //more adjustment        gotoxy(x,y);printf("É");       //Top left corner of box        gotoxy(sx,y);printf("»");      //Top right corner of box        gotoxy(x,sy);printf("È");      //Bottom left corner of box        gotoxy(sx,sy);printf("¼");     //Bottom correct corner of box         for (i=x+one;i<sx;i++)        {           gotoxy(i,y);printf("Í");     // Acme horizontol line           gotoxy(i,sy);printf("Í");    // Lesser Horizontal line        }         for (i=y+1;i<sy;i++)        {           gotoxy(x,i);printf("º");     //Left Vertical line           gotoxy(sx,i);printf("º");    //Right Vertical Line        }            gotoxy(10+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);                       //Ready to color bkcol      for (y=y1;y<y2;y++)                    //Make full Y Region Loop     {         for (x=x1;x<x2;10++)               //Fill X region Loop         {           gotoxy(x,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(x,y,sx,sy,col,col2,text_); }  void drawcolorpalette() {     for (int i=0;i<16;i++)     {         for (int j=0;j<sixteen;j++)         {             setForeGroundAndBackGroundColor(i,j);             gotoxy(i*4,j);printf("%d",(i*j)+one);           }      }  }                  

chasonprather.blogspot.com

Source: https://stackoverflow.com/questions/38843226/how-to-draw-a-circle-with-stars-in-c

0 Response to "Draw a Circle With Asterisk in C"

ارسال یک نظر

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel