Twisted PlaneBy Roger BagulaRendering by Paul Bourke June 1999
C Source code by Paul Bourke#include "stdio.h" #include "stdlib.h" #include "math.h" #include "paulslib.h" int N = 100; double umin = -1, umax = 1; double vmin = -1, vmax = 1; int main(int argc,char **argv) { int i,j; double u,v; XYZ p; COLOUR colour = {1.0,0.0,0.0}, black = {0.0,0.0,0.0}; COLOUR green = {0.0,1.0,0.0}, red = {1.0,0.0,0.0}; COLOUR blue = {0.0,0.0,1.0}; printf("CMESH\n%d %d\n",N+1,N+1); for (i=0;i<=N;i++) { for (j=0;j<=N;j++) { u = umin + i * (umax - umin) / (double)N; v = vmin + j * (vmax - vmin) / (double)N; p.z = sqrt(u*u + v*v) / sqrt(2.0); p.x = (1-p.z)*u + p.z*(1-u); p.y = (1-p.z)*v + p.z*(1-v); colour = GetColour(v,vmin,vmax,2); if (i % 5 == 0) colour = black; printf("%g %g %g %g %g %g 1\n",p.x,p.y,p.z, colour.r,colour.g,colour.b); } } } #include "paulslib.c"
Basic code by Roger BagulaSET MODE "color" SET WINDOW 0,1026,0,750 SET COLOR MIX (1) 0,0,0 PRINT"parametric twist plane: DOUBLE" SET MODE "color" SET WINDOW 0, 1026,0,750 SET COLOR MIX(1) 0,0,0 PRINT" parametric twist plane: DOUBLE" PRINT" LOOKS LIKE A FOLIUM OR STROPHOID 3D PROJECTION" PRINT" by R. L. Bagula 14 June 1999" LET s1=1000/2.5 LET s2=s1*750/1026 FOR t= 1 to -1 step -1/200 LET c=c+1 FOR p= 1 to -1 step -1/200 LET pp=sqr(p^2+t^2)/sqr(2) LET xx=(1-pp)*p+pp*(1-p) LET yy=(1-pp)*t+pp*(1-t) SET COLOR ABS(128-c) PLOT 1026/2+s1*xx-300,750/2+s1*(750/1026)*yy-250; NEXT p PLOT NEXT t END
|