Requisito previo: ¿Cómo incluir graphics.h? , graphics.h
La tarea es dibujar una elipse que sea intersecada por una línea recta que pase por el centro de la elipse en diagonal. Y luego colorea ambos segmentos con diferentes colores.
Enfoque: para ejecutar el programa, debemos incluir el siguiente archivo de encabezado:
#include <graphic.h>
Crearemos la elipse deseada con la ayuda de las siguientes funciones:
- void ellipse(int x, int y, int from_angle, int to_angle, int x_rad, int y_rad) : Una función del archivo de encabezado graphics.h es responsable de crear elipse en la pantalla.
- void line(int x1, int y1, int x2, int y2) : Una función del archivo de encabezado graphics.h que dibuja una línea.
- void floodfill(int x, int y, int border_color) : Una función del archivo de encabezado graphics.h es la función responsable que se usa para llenar un área cerrada. El patrón de relleno actual y el color de relleno se utilizan para rellenar el área.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program for the above approach #include <graphics.h> // Function to set the pattern and // color to be filled in the given // segment void fill(int x, int y, int color, int boundary) { //It will sets the current fill //pattern and fill color setfillstyle(SOLID_FILL,color); // fill the color in segment // having point (x, y) and // border color = boundary floodfill(x, y, boundary); } // Function to create the ellipse // using graphic library void drawEllipse() { // gm is Graphics mode which is a // computer display mode that // generates image using pixels // DETECT is a macro defined in // "graphics.h" header file int gd = DETECT, gm, error; // initgraph initializes the // graphics system initgraph(&gd, &gm, ""); // set the color used for drawing setcolor(YELLOW); // Center of ellipse int x = 150, y = 150; // Draw complete ellipse angle will // be from 0 to 360 int from_angle = 0, to_angle = 360; // Radius of ellipse int x_rad = 130, y_rad = 80; // Ellipse function ellipse(x, y, from_angle, to_angle, x_rad, y_rad); // End points of a line passing // through center of above ellipse int x1 = 80, y1 = 80, x2 = 220, y2 = 220; // Line for above end points line(x1, y1, x2, y2); // Fill different color in two // parts of ellipse, choose point // (x-1, y) and (x+1, y) // because line is passing diagonally fill(x - 1, y, RED, YELLOW); fill(x + 1, y, GREEN, YELLOW); getch(); // closegraph function closes // graphics mode and deallocates // all memory allocated by graphics closegraph(); } // Driver Code int main() { // Function call drawEllipse(); return 0; }
Producción:
Publicación traducida automáticamente
Artículo escrito por himanshu77 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA