#include<iostream.h>#include<conio.h>#include<stdio.h>#include<graphics.h>#include<math.h>#define pi 3.141516class tortuga{ private: double x; double y; double ang; public: void tortuga(double x,double y,double ang){ tortuga.x=x; tortuga.y=y; tortuga.ang=ang*pi/180;}void salta(double distancia){ double xx=x+distancia*cos(ang); double yy=y-distancia*sin(ang); salta(xx, yy);}void salta(double x, double y) { this.x=x; this.y=y;} void gira(double ang){ this.angulo+=angulo*pi/180;}void traza(double distancia){ double xx=x+distancia*Math.cos(angulo); double yy=y-distancia*Math.sin(angulo); Line(xx, yy, x,y); salta(xx, yy);} };void generaKoch(int nivel, double distancia){ if(nivel==0){ tortuga.traza(distancia); }else{ generaKoch(nivel-1, distancia/3); tortuga::gira(60.0); generaKoch(nivel-1, distancia/3); tortuga::gira(-120.0); generaKoch(nivel-1, distancia/3); tortuga:gira(60); generaKoch(nivel-1, distancia/3); }}void main(){int gdriver = DETECT, gmode,n=6; double d=50;initgraph(&gdriver, &gmode, "c:\\tc\\bgi"); generaKoch(n,d); system("pause");closegraph();}
#include<iostream.h>#include<conio.h>#include<stdio.h>#include<graphics.h>#include<dos.h>#define pi 3.141516void f(double x1,double y1,double ang,double d1);double F(int dx,double x ,double y,double d1);int k,tet;void main(){ int gdriver = DETECT, gmode; initgraph(&gdriver, &gmode, "c:\\tc\\bgi"); k=0; for(int n=1,tet=60;n<=15,tet<=500;n++,tet=tet+60) F(k=k+tet,100,200,50); system("pause"); closegraph(); }void f(double x1,double y1,double ang,double d1){ double x,y; d1=0; do { x=x1 + cos(ang)*d1; y=y1 + sin(ang)*d1; putpixel(x,y,14); d1=d1+0.005; }while(d1<=100); }double F(int dx,double x,double y,double d1){ int a=0; double conv,omeg; conv=pi/180; omeg=dx*conv; dx=omeg; f(x,y,a,d1); f(x+cos(a)*100,y+sin(a)*100,a-dx,d1); f(x+cos(a)*100+cos(a-dx)*100,y+sin(a)*100+sin(a-dx)*100,a+dx,d1); f(x+cos(a)*100+cos(a-dx)*100+cos(a+dx)*100,y+sin(a)*100+sin(a-dx)*100+sin(a+dx)*100,a,d1); return 0; }
#include<iostream.h>#include<conio.h>#include<stdio.h>#include<graphics.h>#include<dos.h>#define pi 3.141516struct cursor{float x;float y;float ang;};float avanzar(float*cursor,D){ struct punto{ float x; float y; }; punto= new cursor;p=new punto; p.x=Cursor.punto.x + D*cos( Cursor.ángulo );p.y=Cursor.punto.y + D*sen( Cursor.ángulo ); line(Cursor.punto.x, Cursor.punto.y, P.x, P.y ); delete punto;delete p;}void main(){ int gd=DETECT,gm; initgraph(&gd,&gm," "); closegraph();}
bueno estoy trabajando en codigo sobre las curvas de koch en c++ y borland c++ 5.5 todavia no he logrado resultados validos mas sin embargos les adjunto lo que he trabajado ahsta ahora para a ver si alguien por hay puede hacerme una correcion de lo estoy haciendoCódigo: [Seleccionar]#include<iostream.h>#include<conio.h>#include<stdio.h>#include<graphics.h>#include<math.h>#define pi 3.141516class tortuga{ private: double x; double y; double ang; public: void tortuga(double x,double y,double ang){ tortuga.x=x; tortuga.y=y; tortuga.ang=ang*pi/180;}void salta(double distancia){ double xx=x+distancia*cos(ang); double yy=y-distancia*sin(ang); salta(xx, yy);}void salta(double x, double y) { this.x=x; this.y=y;} void gira(double ang){ this.angulo+=angulo*pi/180;}void traza(double distancia){ double xx=x+distancia*Math.cos(angulo); double yy=y-distancia*Math.sin(angulo); Line(xx, yy, x,y); salta(xx, yy);} };void generaKoch(int nivel, double distancia){ if(nivel==0){ tortuga.traza(distancia); }else{ generaKoch(nivel-1, distancia/3); tortuga::gira(60.0); generaKoch(nivel-1, distancia/3); tortuga::gira(-120.0); generaKoch(nivel-1, distancia/3); tortuga:gira(60); generaKoch(nivel-1, distancia/3); }}void main(){int gdriver = DETECT, gmode,n=6; double d=50;initgraph(&gdriver, &gmode, "c:\\tc\\bgi"); generaKoch(n,d); system("pause");closegraph();}
void f(double x1,double y1,double D,double ang){ double x,y; D=0; do { x=x1 + cos(ang)*D; y=y1 - sin(ang)*D; putpixel(x,y,14); D=D+0.005; }while(D<=100); }
void f(double x1,double y1,double ang,double d1){ double x,y; d1=100; x=x1 + cos(ang)*d1; y=y1 + sin(ang)*d1; setcolor(14); line(x1,y1,x,y); }
void koch() {float x ,y,lon,tet ;int n_i;x=100;y=200;tet=0;dibujar_koch(x,y,lon,n_i,ang);}
/*El siguiente programa ha sido probado y testeado bajo MS-DOS*//*Programado en Borland C++ 5.0*//*Grafica el Fractal de Von Koch en forma recursiva.*/#include <stdio.h>#include <conio.h>#include <graphics.h>#include <math.h>#define PI 3.14159/************************Funciones*****************//*Dibuja una linea de longitud r y angulo angulo*/void draw(double r,double angulo);/*Simplemente arma el denominado copo de Koch */void copoKoch(int orden, double r);/*Grafica la curva de Von Koch en forma recursiva como es de esperarse*/void koch(int orden,double r,double angulo);/*Inicia el modo grafico*/int iniModoGrafico(int *X_max, int *Y_max);/****************************************************/intmain(void){ int Xm,Ym; float lado; /*Longitud de cada lado de */ int orden; /*Indica el orden del fractal.Orden 0 es el caso Base*/ printf("Ingrese el orden: "); scanf("%d",&orden); printf("Ingrese el lado: "); scanf("%f",&lado); iniModoGrafico(&Xm,&Ym); moveto( ((Xm+1)/2)-(Xm+1)/4,((Ym+1) /2)+(Ym+1)/4); copoKoch(orden,lado); getch(); closegraph();return 0;}/**************************/void copoKoch(int orden, double r){ koch(orden,r,PI/3); koch(orden,r,-PI/3); koch(orden,r,PI);}/**************************/void draw(double r,double angulo){ linerel(r*cos(angulo), -r*sin (angulo));}/*********************************/int iniModoGrafico(int *X_max, int *Y_max){ int controlador = DETECT, modo, numerror; initgraph(&controlador, &modo, "C:\\BC5\\BGI"); numerror = graphresult(); /*Si queres podes usar numerror*/ if (numerror != grOk) /* grOk vale 0 si no hay error */ return numerror; *X_max = getmaxx(); *Y_max = getmaxy(); return 0;}/**************************/void koch(int orden,double r,double angulo){ if(orden==0) draw(r,angulo); else { koch(orden-1,r/3,angulo); koch(orden-1,r/3,angulo+(PI/3)); koch(orden-1,r/3,angulo-(PI/3)); koch(orden-1,r/3,angulo); }}/**************************/