File:Fictional planet system Monni 1 1 1 1.png
Original file (2,400 × 800 pixels, file size: 197 KB, MIME type: image/png)
Captions
Summary
[edit]DescriptionFictional planet system Monni 1 1 1 1.png |
English: Fictional planetary system to education purposes.
Solar twin star Monni has 11 planets. Most massive giant planet has two big moons. One planet orbits just outside to HZ, but can harbor life, if is not ocean covered. |
Date | |
Source | Own work |
Author | Merikanto |
////////////////////////// // // planet system rendering test v 2.1 with POV-Ray 3.8 for linux // // 14.01.2024 v2b rel 0000.0007 // ////////////////////////////
- include "functions.inc"
- include "rand.inc"
camera { location <0,0,10>*5 look_at 0 up -3/10
right -10/10
}
light_source { <-10000,0,10000>*10000 color rgb <1,1,1>*2 }
- declare samples1=2;
- macro star2(xloc1, yloc1, zloc1,size1,color1, color2)
union {
sphere { 0, 1 pigment { color rgb color2 } finish {ambient color2*2} scale 0.25 }
sphere { 0, 1 pigment { color rgbf 1 } hollow interior { media { emission 10 method 3 intervals 2 samples samples1 // emission_type 2 // emission_extinction 2 density {
// spherical
//function {exp(-sqrt(x*x+y*y+z*z))}
function { 1/(3000)*pow( sqrt(x*x+y*y+z*z),-4 ) *f_granite(atan(x/y),atan(y/x),atan(z/x)) *pow( sqrt(x*x+y*y+z*z),-4 ) } // function {pow(1*f_spherical(x,y,z),4)*0.33 }
// scallop_wave
// function {pow( (2*(sqrt(x*x+y*y+z*z))) ,-1) } // function {pow(f_spherical(x,y,z),2)*f_wrinkles(x*1000,y*1000,z*1000) } // function {f_wrinkles(x*10,y*10,z*10) }
color_map { [ 0.0 rgb 0.0 ] // [ 0.2 rgb color1*0.05 ] // [ 0.6 rgb color1*0.5 ] [ 1.0 rgb color2*2 ] } } } // absorbing stuff#declare samples1=30;
}
} scale size1
translate x*xloc1
translate y*yloc1 translate z*zloc1 } // juunion
- end
- macro print_string(str1, col1,size1, x1, y1)
text { ttf "timrom.ttf" str1 0.1, 0 pigment { color rgbt col1 } finish {ambient 1} scale size1 translate x*x1 translate y*y1 translate z*0.2 }
- end
- macro print_caption(str1, x1, y1, skale1, color1)
text { ttf "timrom.ttf" str1 0.1, 0 pigment { color rgbt color1 } finish {ambient 1} scale 2*skale1 translate x*x1 translate y*y1 translate z*0.3 }
- end
- macro star01 (xloc1, yloc1, zloc1, size1, name1, color1, color2)
object { sphere {0,1} texture { pigment { wrinkles scale 1/10 turbulence 0.5 color_map { [0 color rgb color1] [1 color rgb color2] } }
finish { diffuse 0.6 ambient 1} }
scale size1
translate x*xloc1 translate y*yloc1 translate z*zloc1
}
- end
- macro planet01 (xloc1, yloc1,zloc1, size1, name1, color1, color2)
object { sphere {0,1} texture { pigment { wrinkles scale y/3 color_map { [0 color rgb color1] [1 color rgb color2] } }
finish { diffuse 0.6 ambient 1}
}
scale size1 translate x*xloc1 translate y*yloc1 translate z*zloc1 }
- end
- declare pig_clouds_1= pigment {
wrinkles //omega 0.5
//lambda 0.5 scale 1/5
turbulence 1
scale 3
warp { turbulence 0.5}
scale 1/3
scale 10
warp { turbulence 0.5}
scale 1/10 }
- declare clouds_1= object {
#declare randi1= SRand(0) ; #declare randi2= SRand(1) ; #declare randi3= SRand(2) ; #declare randi4= SRand(3) ;
sphere {0,1.005} texture {
pigment { //pig_clouds_1 wrinkles // granite warp { turbulence 0.5 } turbulence randi1 turbulence 0.5 scale 1/2 rotate x*randi1*180 rotate y*randi1*360 color_map { [0 color rgbt <1,1,1,1>] [0.3 color rgbt <1,1,1,1>] [1 color rgbt <1,1,1,0>*1]
} }
// normal { pigment_pattern { pig_clouds_1 } 0.1 } finish { ambient 0 diffuse 0.42 brilliance 0.4}
} }
- declare clouds_2= object {
#declare randi1= SRand(0) ; #declare randi2= SRand(1) ; #declare randi3= SRand(2) ; #declare randi4= SRand(3) ;
sphere {0,1.002} texture {
pigment { //pig_clouds_1 wrinkles // granite
scale 0.1
warp { turbulence 1 }
scale 10
scale z/6 turbulence randi1 // turbulence 0.5 scale 1/2 rotate x*randi1*180 rotate y*randi1*360 color_map { [0 color rgbt <1,1,1,1>] // [0.3 color rgbt <1,1,1,1>] [1 color rgbt <1,1,1,0>*1]
} }
// normal { pigment_pattern { pig_clouds_1 } 0.1 } finish {
ambient 0 diffuse 0.42 brilliance 0.4 phong 0.05 phong_size 1 specular 0.01 metallic }
} }
- declare atmos_1 = object
{ sphere {0,1 }
pigment{ rgbt 1 } hollow interior{ //----------- media{ emission <-0.4,0.7,1>*0 scattering{ 3, <0.24, 0.47, 1>*15 // rayleigh atm! extinction 5 } density{ spherical
// poly_wave 6.7
poly_wave 6 color_map { [0.0 rgb 0.0]//
[1.0 rgb 1]// } } } }
//scale 2.7*0.9 scale 1.75 }
- declare rings_1=object {
#declare randi1= SRand(0) ; #declare randi2= SRand(1) ; #declare randi3= SRand(2) ; #declare randi4= SRand(3) ; torus { 2, 0.5 scale y/100 texture { pigment { //onion //function {f_onion(x,y,z)} function {f_granite(f_onion(x,y,z),randi1,randi2) } poly_wave 2 color_map { [0 color rgbt <1,1,1,1> ] [1 color rgbt <1,1,1,0.5>*1 ] } } } finish {diffuse 0.3 phong 0.1 specular 0.01 } }
} // rings
- macro planet_base_1 (xloc1, yloc1,zloc1, size1, type1, inclination1)
#declare randi1= SRand(0) ; #declare randi2= SRand(1) ; #declare randi3= SRand(2) ; #declare randi4= SRand(3) ;
object { sphere {0,1}
#if(type1="asteroids0")
texture {
pigment { color rgbt 1
}
}
#end
#if(type1="empty")
texture {
pigment { color rgbt 1
}
}
#end
#if (type1="basic")
#declare type1="base";
#end
#if (type1="basic2")
#declare type1="base2";
#end
#if(type1="base")
texture {
pigment {
wrinkles scale 1/3
turbulence randi2/5 rotate z*inclination1
color_map { [0 color rgb <0.741176, 0.486275, 0.423529>] [1 color rgb <0.305882, 0.121569, 0.0862745>]
} }
finish { diffuse 0.6 ambient 0 phong 0.1}
}
#end
#if(type1="base2")
texture {
pigment {
wrinkles //agate //bozo //granite
turbulence 1 scale 1/2
scale y/3
warp {turbulence 0.5 }
turbulence randi2/5
rotate z*inclination1
color_map { // [0 color rgb <0.741176, 0.486275, 0.423529>*0.8] // [0.5 color rgb <0.741176, 0.486275, 0.423529>] [0.0 color rgb <1,0.5,0>] [1 color rgb <1,1,1>]
} }
finish { diffuse 0.6 ambient 0 phong 0.1}
}
texture { pigment {color rgbt <0.5,0.5,0.5,0.5>} finish { phong 0.1 specular 0.05 } }
#end
#if (type1="stone") #declare type1="rock"; #end
#if (type1="stone2") #declare type1="rock2"; #end
#if(type1="rock")
texture {
pigment {
function {
//( f_hetero_mf(x,y,z, 0.9, 1.7,13, 0.5, 0.9, 3 )*4/10* (f_ridged_mf(x*3,y*3,z*3,0.5,2,64,-0.7,0.8, 2)) *0.25)
0.8*(f_wrinkles(x*5,y*5,z*5)*0.5+f_granite(x,y,z)*0.5) +0.2*f_granite(x*10,y*10,z*10)
}
scale 4
warp { turbulence 0.3}
// scale 1/3
octaves 60
turbulence randi2/5
rotate z*inclination1
color_map { [0 color rgb <0.807843, 0.588235, 0.415686>*1.0-randi2/10]
[1 color rgb <0.521569, 0.431373, 0.337255>*0.5+randi3/10]
}
}
finish { diffuse 0.6 ambient 0 phong 0.05 specular 0.1 }
}
#end
#if(type1="rock2")
texture {
pigment { //granite wrinkles color_map { [0 color rgb <0.796078, 0.584314, 0.458824> ] [1 color rgb <0.25098, 0.258824, 0.301961>] }
}
finish { diffuse 0.6 ambient 0 phong 0.05 specular 0.1 }
normal { granite bump_size 0.1 scale 0.2}
}
#end
#if (type1="ocean") #declare type1="water"; #end #if(type1="water")
texture {
pigment {
wrinkles scale y/3 turbulence randi2/5 rotate z*inclination1
color_map { [0 color rgb <0.239216, 0.380392, 0.568627>] [1 color rgb <0.960784, 0.992157, 0.992157>] } }
finish { diffuse 0.6 ambient 0}
}
#end
#if(type1="ice")
texture {
pigment {
wrinkles //scale y/3 // turbulence randi2/5 rotate z*inclination1
color_map { [0 color rgb 1] [1 color rgb 0.9] } }
finish { diffuse 0.6 ambient 0}
}
#end
#if (type1="minineptune")
#declare type1="gasdwarf";
#end
#if (type1="minineptune2") #declare type1="gasdwarf2"; #end
#if(type1="gasdwarf")
texture {
pigment {
function { f_granite (y,randi1*f_wrinkles(x,y,z), randi2)}
rotate z*inclination1
color_map { [0 color rgb <0.670588, 0.866667, 0.894118>] [1 color rgb <0.254902, 0.72549, 0.792157>] } }
finish { diffuse 0.6 ambient 0}
}
#end
#if(type1="gasdwarf2")
texture {
pigment {
//function { f_granite (y,randi1*f_wrinkles(x,y,z), randi2)} function { f_wrinkles (0,y+randi1,0) }
scale 10 warp { turbulence 0.5} scale 1/10
rotate z*inclination1
color_map { [0 color rgb <0.15,1,1>*1] [1 color rgb <0.15,0.15,1>*1] } }
finish { diffuse 0.6 ambient 0 phong 0.01 }
}
#end
#if(type1="neptune")
texture {
pigment {
//granite function { f_granite (y,randi1, randi2)} scale 10 warp { turbulence 0.5} scale 1/10
scale y/3 // turbulence randi2/5 rotate z*inclination1
color_map { [0 color rgb <0.827451, 0.960784, 0.968627>] [1 color rgb <0.662745, 0.819608, 0.87451>] } }
finish { diffuse 0.6 ambient 0}
}
#end
#if(type1="saturn")
texture {
pigment {
//wrinkles function { f_granite (y,randi1, randi2)}
scale 10 warp { turbulence 0.5} scale 1/10
// turbulence randi2/5 rotate z*inclination1
// scale y/5
color_map {
[0 color rgb <0.941176, 0.827451, 0.529412>]
[1 color rgb <0.701961, 0.592157, 0.407843>]
}
}
finish { diffuse 0.6 ambient 0}
}
#end
#if (type1="gasgiant") #declare type1="gas"; #end
#if (type1="giant") #declare type1="gas"; #end
#if (type1="jupiter") #declare type1="gas"; #end
#if (type1="jovian") #declare type1="gas"; #end
#if(type1="gas")
texture {
pigment {
function { f_agate (y,randi1, randi2)} //wrinkles scale 10 warp { turbulence 0.5} scale 1/10
// turbulence randi2/5 rotate z*inclination1
// scale y/5
color_map {
[0 color rgb <0.764706, 0.615686, 0.466667>]
[1 color rgb <0.960784, 0.960784, 0.992157>]
}
}
finish { diffuse 0.6 ambient 0}
}
#end
// objekt modifiers
scale size1 translate x*xloc1 translate y*yloc1 translate z*zloc1 }
- end
- macro planet_system_1(starx1,starsize1,planetoffset1,radiuscoeff1,dmax1 ,numplanets1, systemname1, names1, distances1, radiuses1, types1, atmoses1, coudeses1, ringeses1)
union {
#declare beginx1=distances1[0]; #declare endx1=distances1[numplanets1-1];
#declare dfx1=log(endx1)-log(beginx1); #declare dkx1=dmax1/dfx1;
#declare nupa1=numplanets1-1; #if (numplanets1=1) #declare nupa1=1; #end
#for (nn,0,nupa1 )
#declare planetx1=distances1[nn]; //#declare planetx1=0nn*0.1;
#declare planetr1=radiuses1[nn]*radiuscoeff1; //#declare planetr1=log(radiuses1[nn])*radiuscoeff1;
#declare dpx1=log(planetx1)-log(beginx1);
#declare sitex1=starx1+starsize1+planetoffset1+dpx1*dkx1;
//#declare sitex2=starx1+starsize1+planetoffset1+nn*dkx1*0.08; //#declare sitex1=sitex2;
#declare type1=types1[nn];
#declare randi1= SRand(0) ; #declare randi2= SRand(1) ; #declare randi3= SRand(2) ; #declare randi4= SRand(3) ;
#declare inclination1=randi1*30; //#declare inclination1=90; #declare inclination2=45;
#if(types1[nn]="asteroids")
object {
intersection { torus {sitex1-starx1, 1 } sphere {x*(sitex1-starx1),6} }
translate x*starx1
rotate x*90
texture { pigment { bozo scale 1/3 //granite
color_map { [0 color rgbt <1,1,1,0> ] [0.25 color rgbt <1,1,1,0> ] [0.25 color rgbt <1,1,1,1>*1 ] [1 color rgbt <1,1,1,1>*1 ] }
}
finish {ambient 1} }
}
#end
object {
planet_base_1 (sitex1, 0,0, planetr1, type1, inclination1)
//rotate x*90
rotate x*inclination2
}
#declare isatm1=atmoses1[nn];
#if (isatm1=1) object { atmos_1 scale planetr1 translate x*sitex1} #end
#if (cloudeses1[nn]=1) object { clouds_2 scale planetr1 rotate z*inclination1 translate x*sitex1} #end
#if (ringeses1[nn]=1)
object { rings_1 rotate z*inclination1 rotate x*inclination2 scale 1 scale planetr1 translate x*sitex1}
#end
#end
}
- end
- macro print_names_1(starx1,starsize1,planetoffset1,numplanets1, names1, col1, size1)
#declare beginx1=distances1[0]; #declare endx1=distances1[numplanets1-1];
#declare dfx1=log(endx1)-log(beginx1); #declare dkx1=dmax1/dfx1;
#for (nn,0,(numplanets1-1) )
#declare planetx1=distances1[nn]; //#declare planetx1=0nn*0.1;
//#declare planetr1=radiuses1[nn]*radiuscoeff1; //#declare planetr1=log(radiuses1[nn])*radiuscoeff1;
#declare dpx1=log(planetx1)-log(beginx1);
#declare sitex1=starx1+starsize1+planetoffset1+dpx1*dkx1;
print_string(names1[nn], col1,size1, sitex1-1, -11)
#end
- end
- macro tell_sitex_1(num1, numplanets1, distances1, starx1,starsize1,planetoffset1, dmax1)
#declare beginx1=distances1[0]; #declare endx1=distances1[numplanets1-1];
#declare dfx1=log(endx1)-log(beginx1); #declare dkx1=dmax1/dfx1;
#declare planetx1=distances1[num1];
#declare sitex2=starx1+starsize1+planetoffset1+dpx1*dkx1;
#declare planetx2=sitex2;
#declare tell_sitex_1=planetx2;
- end
- macro asteroid_zone_1(numplanets1, distances1, starx1,dmax1, starsize1,planetoffset1,aa1,aa2)
#declare beginx1=distances1[0]; #declare endx1=distances1[numplanets1-1];
#declare dfx1=log(endx1)-log(beginx1); #declare dkx1=dmax1/dfx1;
#declare dpx1=log(aa1)-log(beginx1); #declare dpx2=log(aa2)-log(beginx1);
#declare rax1=starx1+starsize1+planetoffset1+dpx1*dkx1; #declare rax2=starx1+starsize1+planetoffset1+dpx2*dkx1; #declare rax3=(rax1+rax2)/2; #declare rdx1=rax2-rax1; #declare rdx2=rdx1/2;
#declare arx1=rax3+abs(starx1);
object {
// disc {<starx1,0,0>, <0,0,1>, rax2, rax1} // sphere {0,1 translate x*rax3}
torus {arx1, rdx2 } // disc {0, <1,1,1>, 10, 20} rotate x*90
translate x*starx1 scale z/1000
texture { pigment {
// color rgb 1 bozo scale 1/3
// granite
color_map { [0 color rgbt <1,1,1,0> ] [0.2 color rgbt <1,1,1,0> ] [0.2 color rgbt <1,1,1,1>*1 ] [1 color rgbt <1,1,1,1>*1 ] }
}
finish {ambient 10} } }
- end
- macro circular_orbit_1(aa1, color1, numplanets1, distances1, starx1,dmax1, starsize1,planetoffset1)
#declare beginx1=distances1[0]; #declare endx1=distances1[numplanets1-1];
#declare dfx1=log(endx1)-log(beginx1); #declare dkx1=dmax1/dfx1;
#declare dpx1=log(aa1)-log(beginx1);
#declare rax1=starx1+starsize1+planetoffset1+dpx1*dkx1;
#declare arx1=rax1+abs(starx1);
object {
torus {arx1, 0.1 }
rotate x*90
translate x*starx1 scale z/1000
texture { pigment {
color rgbt color1
}
finish {ambient 10} } }
- end
- macro color_zone_1(numplanets1, distances1, starx1,dmax1, starsize1,planetoffset1,aa1,aa2, color1)
#declare beginx1=distances1[0]; #declare endx1=distances1[numplanets1-1];
#declare dfx1=log(endx1)-log(beginx1); #declare dkx1=dmax1/dfx1;
#declare dpx1=log(aa1)-log(beginx1); #declare dpx2=log(aa2)-log(beginx1);
#declare rax1=starx1+starsize1+planetoffset1+dpx1*dkx1; #declare rax2=starx1+starsize1+planetoffset1+dpx2*dkx1; #declare rax3=(rax1+rax2)/2; #declare rdx1=rax2-rax1; #declare rdx2=rdx1/2;
#declare arx1=rax3+abs(starx1);
object {
torus {arx1, rdx2 } // disc {0, <1,1,1>, 10, 20} rotate x*90
translate x*starx1 scale z/1000
texture { pigment { rgbt color1 }
finish {ambient 11} } }
- end
///////// parameters of planet system
// // fictional planet system: stargen seed 1, mass 1, 0ne planat transformet to asteroid belt, two fictional moons // // https://fast-times.eldacur.com/cgi-bin/StarGen.pl //
- declare numplanets1=11;
- declare systemname1="Monni";
- declare names1=array[numplanets1]{"1","2", "3", "4","5","6" , "7","8","9", "A","B" }
- declare distances1=array[numplanets1]{0.356,0.507,0.751, 1.110,2.060,3.762 ,7.338,16.957,24.027, 42.803,49.947 }
- declare radiuses1=array[numplanets1]{ 0.523,0.682,0.562, 1.347,1.051,6.516 , 12.604,9.560,2.512, 1.240,0.366 }
- declare types1=array[numplanets1]{ "rock","rock","rock", "ocean","null","saturn" , "jupiter","jupiter","gasdwarf", "ice","ice" }
- declare atmoses1=array[numplanets1]{0,0,0, 0,0,0, 0,0,0, 0,0}
- declare cloudeses1=array[numplanets1]{0,0,0, 0,0,0, 0,0,0, 0,0}
- declare ringeses1=array[numplanets1]{0,0,0, 0,0,1, 0,0,0, 0,0}
- declare starcolor1 = <1.0,0.637,0.34>;
- declare starcolor2 = <1.0,0.637,0.34>*0.95;
- declare starx1=-40;
- declare starsize1 =5.0;
- declare planetoffset1=starsize1*0.2;
- declare radiuscoeff1=0.3;
- declare dmax1=75;
- declare color1=<0,0,1,0>;
print_caption(systemname1, -10, 8,1.5*2, color1)
star2(starx1, 0,0, starsize1,starcolor1, starcolor2)
planet_system_1(starx1,starsize1,planetoffset1,radiuscoeff1,dmax1 ,numplanets1, systemname1, names1, distances1, radiuses1, types1, atmoses1, cloudeses1, ringeses1)
- declare col1=<1,1/2,1/2,0>;
- declare size1=3;
print_names_1(starx1,starsize1,planetoffset1,numplanets1, names1, col1, size1)
- declare aa1=1.4;
- declare aa2=2.6;
asteroid_zone_1(numplanets1, distances1, starx1,dmax1, starsize1,planetoffset1,aa1,aa2)
- declare color1=<0,0,1,0>;
- declare aa1=2.2;
//circular_orbit_1(aa1, color1, numplanets1, distances1, starx1,dmax1, starsize1,planetoffset1)
// Habitable done, assumed +-7%
- declare aa1=0.93;
- declare aa2=1.07;
- declare color1=<0,0.5,0,0.99>;
color_zone_1(numplanets1, distances1, starx1,dmax1, starsize1,planetoffset1,aa1,aa2, color1)
//#declare col1=<1,1,1>; //print_string("Radius Re: ",col1, starx1, -11)
// moon of planet 10
- declare numplanets2=2;
- declare systemname2="A";
- declare names2=array[numplanets2]{"1", "2" }
- declare distances2=array[numplanets2]{ 0.1, 0.2 }
- declare radiuses2=array[numplanets2]{ 0.475, 0.8 }
- declare types2=array[numplanets2]{ "basic" , "ice" }
- declare atmoses2=array[numplanets2]{0,0}
- declare cloudeses2=array[numplanets2]{0,0}
- declare ringeses2=array[numplanets2]{0,0}
/*
- declare names2=array[numplanets2]{"1", "0" }
- declare distances2=array[numplanets2]{ 0.1, 1 }
- declare radiuses2=array[numplanets2]{ 0.475, 1 }
- declare types2=array[numplanets2]{ "basic", "empty" }
- /
- declare atmoses2=array[numplanets2]{0,0}
- declare cloudeses2=array[numplanets2]{0,0}
- declare ringeses2=array[numplanets2]{0,0}
- declare num1=9;
//tell_sitex_1(num1, numplanets1, distances1, starx1,starsize1,planetoffset1, dmax1)
//#declare beginx1=distances1[0]; //#declare endx1=distances1[numplanets1-1];
//#declare dfx1=log(endx1)-log(beginx1); //#declare dkx1=dmax1/dfx1;
//#declare planetx1=distances1[num1];
//#declare planetx2=starx1+starsize1+planetoffset1+dpx1*dkx1;
- declare planetx2=50;
- declare starx2=planetx2;
- declare starsize2 =1;
- declare planetoffset2=starsize2;
- declare radiuscoeff2=0.4;
- declare dmax2=1;
object { planet_system_1(starx1,starsize2,planetoffset1,radiuscoeff2,dmax2 ,numplanets2, systemname2, names2, distances2, radiuses2, types2, atmoses2, cloudeses2, ringeses2) //rotate z*10 translate y*-6 translate x*planetx2
}
Licensing
[edit]This file is made available under the Creative Commons CC0 1.0 Universal Public Domain Dedication. | |
The person who associated a work with this deed has dedicated the work to the public domain by waiving all of their rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law. You can copy, modify, distribute and perform the work, even for commercial purposes, all without asking permission.
http://creativecommons.org/publicdomain/zero/1.0/deed.enCC0Creative Commons Zero, Public Domain Dedicationfalsefalse |
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 15:33, 14 February 2024 | 2,400 × 800 (197 KB) | Merikanto (talk | contribs) | Uploaded own work with UploadWizard |
You cannot overwrite this file.
File usage on Commons
There are no pages that use this file.
Metadata
This file contains additional information such as Exif metadata which may have been added by the digital camera, scanner, or software program used to create or digitize it. If the file has been modified from its original state, some details such as the timestamp may not fully reflect those of the original file. The timestamp is only as accurate as the clock in the camera, and it may be completely wrong.
PNG file comment |
|
---|---|
File change date and time | 15:27, 14 February 2024 |
Software used |