commit 8a06d84ca2fed0f5bce672432d55e8466ac7a4d7 Author: Carlos Sanchez Date: Tue Jul 16 17:00:22 2024 -0400 First commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d880db8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +*.bin +*.ppm +*.png +*.gif +*.jpg +*.jpeg diff --git a/business-rt.cpp b/business-rt.cpp new file mode 100644 index 0000000..c9fc6b1 --- /dev/null +++ b/business-rt.cpp @@ -0,0 +1,23 @@ + #include + #include + #include + #define h return + #define F printf + #define S struct + typedef float d;typedef int i;d H=1003;d w(){h drand48();}S v{d x,y,z;v(d a=0,d b=0,d + c=0){x=a;y=b;z=c;}v a(v b){h v(x+b.x,y+b.y,z+b.z);}v c(v b){h v(x*b.x,y*b.y,z*b.z);}d + e(v b){h x*b.x+y*b.y+z*b.z;}v f(d b){h v(x*b,y*b,z*b);}v n(d s=1){h f(s/sqrt(x*x+y*y+ + z*z));}v p(v a){h v(y*a.z-z*a.y,z*a.x-x*a.z,x*a.y-y*a.x);}};S r{v o,a;r(v j,v k){o=j; + a=k;}v p(d t){h a.f(t).a(o);}};S s{v p;d l;i C(r q,d&t){v o=q.o.f(-1).a(p);d b=q.a.e( + o);d c=o.e(o)-l;c=b*b-c;if(c<0)h 0;c=sqrt(c);d v=b-c;if(v>0&&v1?1:c,.45)*255+.5;}r C(d x,d y){v e=v(x,-y,1).n(4);d a=6*w(),c=.2 + *sqrt(w());d b=sin(a)*c;a=cos(a)*c;e.x-=a;e.y-=b;h r(v(a,b),e.n());}s u[10] ={{v(0,-2 + ,5),1},{v(0,-H),1e6},{v(0,H),1e6},{v(H),1e6},{v(-H),1e6},{v(0,0,-H),1e6},{v(0,0,H+3), + 1e6},{v(-2,-2,4),2},{v(2,-3,4),1},{v(2,-1,4),1}}; i p(r a,d&t){i n=-1;for(i m=0;m<10; + m++){if(u[m].C(a,t))n=m;}h n;}v e(r a,d b){d t=1e6;i o=p(a,t);if(b>5||o<0)h v();if(!o + )h v(.9,.5,.1);v P=a.p(t);v V=u[o].p.f(-1).a(P).n();if(o>7){a=r(P,a.a.a(V.f(-2*V.e(a. + a))));h e(a,++b).f((o-6.5)/2);}d O=6*w();d A=sqrt(w());v U=a.a.f(-1).p(V).n();v T=U.p + (V);a=r(P,T.f(cos(O)*A).a(U.f(sin(O)*A)).a(V.f(sqrt(1-A*A))).n());v j(1,1,1);if(o==3) + j.x=j.z=0;if(o==4)j.y=j.z=0;h e(a,++b).c(v(j));}i main(){F("P3\n512 512\n255\n");for( + i m=0;m<512;m++)for(i n=0;n<512;n++){v q;for(i k=0;k<100;k++){r j=C(n/256.0-1,m/256.0 + -1);q=q.a(e(j,0).f(0.02));}F("%d %d %d ",g(q.x),g(q.y),g(q.z));}} diff --git a/go1/.gitignore b/go1/.gitignore new file mode 100644 index 0000000..759acce --- /dev/null +++ b/go1/.gitignore @@ -0,0 +1 @@ +go1 diff --git a/go1/go.mod b/go1/go.mod new file mode 100644 index 0000000..71d55c4 --- /dev/null +++ b/go1/go.mod @@ -0,0 +1,5 @@ +module 3dtrial/go1 + +go 1.22.5 + +require github.com/ungerik/go3d v0.0.0-20240502073936-1137f6adf7e9 diff --git a/go1/go.sum b/go1/go.sum new file mode 100644 index 0000000..daad004 --- /dev/null +++ b/go1/go.sum @@ -0,0 +1,2 @@ +github.com/ungerik/go3d v0.0.0-20240502073936-1137f6adf7e9 h1:wMWP16Ijw+W+IXGcAzrwQDua1NBB4tP8iWECpg5DVRQ= +github.com/ungerik/go3d v0.0.0-20240502073936-1137f6adf7e9/go.mod h1:ipEjrk2uLK4xX8ivWBPIVOD0fMtKyPI0strluUfIlYQ= diff --git a/go1/main.go b/go1/main.go new file mode 100644 index 0000000..37b3610 --- /dev/null +++ b/go1/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "fmt" + "github.com/ungerik/go3d/vec3" +) + +func main() { + fmt.Printf("Hello world") + thing := vec3.T{ + 0, 0, 0, + } + fmt.Printf("Thing: %v", thing) +}