protector de pantalla con primivas1
DESCRIPTION
AAAATRANSCRIPT
![Page 1: Protector de Pantalla Con Primivas1](https://reader036.vdocuments.us/reader036/viewer/2022083017/56d6c01e1a28ab3016990625/html5/thumbnails/1.jpg)
//Protector de pantalla con primivas#include <graphics.h>#include <conio.h>#include <math.h>#include <stdio.h>#include <stdlib.h>#include <dos.h>void linea_bressenham(int x1,int y1,int x2,int y2,int color){int dy,dx,ix,iy,e,x,y;dy=y2-y1;dx=x2-x1;ix=2*dx;iy=2*dy;y=y1;e=iy-dx;for(x=x1;x<=x2;x++)
{putpixel(x,y,color);e+=iy;if(e>0)
{y++;e-=ix;}
}}void simetrico_circulo(double xc,double yc,double x,double y,int color){ putpixel(xc+x,yc+y,color); putpixel(xc-x,yc+y,color); putpixel(xc+x,yc-y,color); putpixel(xc-x,yc-y,color); putpixel(xc+y,yc+x,color); putpixel(xc-y,yc+x,color); putpixel(xc+y,yc-x,color); putpixel(xc-y,yc-x,color);}void simetrico_elipse(double xc,double yc,double x,double y,int color){ putpixel(xc+x,yc+y,color); putpixel(xc-x,yc+y,color); putpixel(xc+x,yc-y,color); putpixel(xc-x,yc-y,color);
}void circulo_BRESENHAM(double xc,double yc,double radio,int color){ double x,y,e; x=radio; y=0; e=0; while(y<x) { simetrico_circulo(xc,yc,x,y,color); e=e+2*y+1;
![Page 2: Protector de Pantalla Con Primivas1](https://reader036.vdocuments.us/reader036/viewer/2022083017/56d6c01e1a28ab3016990625/html5/thumbnails/2.jpg)
y++; if((2*e)>(2*x-1))
{x--;e=e-2*x+1;}
}}
void ELIPSE(double xc,double yc,double radiox,double radioy,int color){ double p,px,py,x,y,ry2,rx2,rx22,ry22; ry2=radioy*radioy; rx2=radiox*radiox; ry22=2*ry2; rx22=2*rx2; x=0; y=radioy; simetrico_elipse(xc,yc,x,y,color); p=ry2-rx2*radioy+0.25*rx2; px=0; py=rx22*y; while(px<py)
{x++;px=px+ry22;if(p<0)
p=p+ry2+px;else
{y--;py=py-rx22;p=p+ry2+px-py;}
simetrico_elipse(xc,yc,x,y,color);}
p=ry2*pow(x+0.5,2)+rx2*pow(y-1,2)-rx2*ry2; while(y>0)
{y--;py=py-rx22;if(p<=0)
{x++;px=px+ry22;p=p+rx2-py+px;}
elsep=p+rx2-py;
simetrico_elipse(xc,yc,x,y,color);}
}void parabola(int xc, int yc, int p, int bound,int color){ int x,y,d; int p2, p4; p2 = 2*p; p4 = 2*p2; x = 0;
![Page 3: Protector de Pantalla Con Primivas1](https://reader036.vdocuments.us/reader036/viewer/2022083017/56d6c01e1a28ab3016990625/html5/thumbnails/3.jpg)
y = 0; d = 1 - p;//region 1 while(y < p && x<=bound){ setcolor(color); line(xc+x,yc+y,xc+x,yc+y); line(xc+x,yc-y,xc+x,yc-y); if(d >= 0){ x++; d = d - p2; } y++; d = d + 2*y +1; } if(d == 1) d = 1 - p4; else d = 1 - p2;//region 2 while(x<=bound){ line(xc+x,yc+y,xc+x,yc+y); line(xc+x,yc-y,xc+x,yc-y); if(d <= 0){ y++; d = d + 4*y; } x++; d = d - p4; }}int main(void){
int gdriver = DETECT, gmode; int x, y,contador; initgraph(&gdriver, &gmode, "d:\\borlandc\\bgi"); do{ linea_bressenham(random(getmaxx()),random(getmaxy()),random(getmaxx()),random(getmaxy()),random(15)); circulo_BRESENHAM(random(getmaxx()),random(getmaxy()),random(100),random(15)); ELIPSE(random(getmaxx()),random(getmaxy()),random(100),random(100),random(15)); parabola(random(getmaxx()),random(getmaxy()),random(100),random(100),random(15)); contador+=1; if(contador%100==0) { cleardevice(); } delay(100); }while(!kbhit()); getch();closegraph();return 0;}