#include "TrueBASIC.h" void draw(double x1, double y1, double x2, double y2, int n); #ifdef _MSC_VER void __stdcall DRAW(double *x1, double *y1, double *x2, double *y2, int *n) #else void draw_(double *x1, double *y1, double *x2, double *y2, int *n) #endif { draw(*x1, *y1, *x2, *y2, *n); } void draw(double x1, double y1, double x2, double y2, int n) { double dx, dy, x1n, x2n, xmid, y1n, y2n, ymid; if(n > 0) { dx = (x2 - x1)/3; dy = (y2 - y1)/3; x1n = x1 + dx; y1n = y1 + dy; x2n = x1 + 2*dx; y2n = y1 + 2*dy; xmid = 0.5*dx - 0.866*dy + x1n; ymid = 0.5*dy + 0.866*dx + y1n; draw(x1, y1, x1n, y1n, n-1); draw(x1n, y1n, xmid, ymid, n-1); draw(xmid, ymid, x2n, y2n, n-1); draw(x2n, y2n, x2, y2, n-1); } else GWline((float)(x1), (float)(y1), (float)(x2), (float)(y2)); }