File:Tesseract tetrahedron shadow with alternating vertex colors, lower cube.png
Original file (3,624 × 3,990 pixels, file size: 829 KB, MIME type: image/png)
Captions
Summary edit
DescriptionTesseract tetrahedron shadow with alternating vertex colors, lower cube.png |
One vertex in the preimage of this cube is the projection center, and this vertex is therefore not shown in the image. This image was created with POV-Ray. |
||
Source | Own work | ||
Author |
|
Licensing edit
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
- You are free:
- to share – to copy, distribute and transmit the work
- to remix – to adapt the work
- Under the following conditions:
- attribution – You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
POV-Ray source edit
#version 3.6;
global_settings { assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.9 conserve_energy}}
#include "colors.inc"
///////////////////////////// camera and light
#declare Camera_Position = <10, 16, -50>;
camera{
location Camera_Position
right x*image_width/image_height
angle 11.3
look_at <.7, 1.1, 0>
}
light_source{ <-400, 500, -300> color White*0.9 shadowless}
light_source{ <400, 200, 100> color White*0.4 shadowless}
light_source{ Camera_Position color rgb<0.9,0.9,1>*0.2 shadowless}
sky_sphere{ pigment{ White } }
/////////////////////////////////////////////////////////////////////////////////////////////////
#declare Factor = 7;
#declare EdgeColor = <.5, .5, .5, 0>;
#declare TransparentEdgeColor = <.5, .5, .5, .95>;
#declare LightVertexColor = <.5, .8*.5, .65*.5, 0>;
#declare DarkVertexColor = <.2, .8*.2, .65*.2, 0>;
#declare TransparentLightVertexColor = <.5, .8*.5, .65*.5, .95>;
#declare TransparentDarkVertexColor = <.2, .8*.2, .65*.2, .95>;
#declare RedFaceColor = <1, 0, 0, .18>;
/////////////////////////////////////////////////////////////////////////////////////////////////
#declare VertexPoints = array[15]{ <-0.7071067811865475, -0.408248290463863, -0.28867513459481287>, <0.0, 0.0, 0.8660254037844386>, <-0.35355339059327373, -0.2041241452319315, 0.28867513459481287>, <0.0, 0.816496580927726, -0.28867513459481287>, <-0.35355339059327373, 0.2041241452319315, -0.28867513459481287>, <0.0, 0.408248290463863, 0.28867513459481287>, <-0.2357022603955158, 0.13608276348795434, 0.09622504486493762>, <0.7071067811865475, -0.408248290463863, -0.28867513459481287>, <0.0, -0.408248290463863, -0.28867513459481287>, <0.35355339059327373, -0.2041241452319315, 0.28867513459481287>, <0.0, -0.2721655269759087, 0.09622504486493762>, <0.35355339059327373, 0.2041241452319315, -0.28867513459481287>, <0.0, 0.0, -0.28867513459481287>, <0.2357022603955158, 0.13608276348795434, 0.09622504486493762>, <0.0, 0.0, 0.0> }
#declare VertexRanks = array[15]{ 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 }
#declare FakeRanks = array[5]{0, 1, 3, 6, 10};
#declare VertexRankParities = array[15]{ 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0 }
#declare TransparentVertices = array[8]{ 2, 3, 6, 10, 7, 11, 14, 15 };
#declare SolidVertices = array[7]{ 1, 4, 8, 5, 9, 12, 13 };
#declare TransparentEdges = array[19]{ array[2]{1, 3}, array[2]{4, 6}, array[2]{5, 7}, array[2]{8, 10}, array[2]{9, 11}, array[2]{12, 14}, array[2]{13, 15}, array[2]{2, 3}, array[2]{2, 6}, array[2]{2, 10}, array[2]{3, 7}, array[2]{3, 11}, array[2]{6, 7}, array[2]{6, 14}, array[2]{10, 11}, array[2]{10, 14}, array[2]{7, 15}, array[2]{11, 15}, array[2]{14, 15} }
#declare SolidEdges = array[9]{ array[2]{1, 9}, array[2]{1, 5}, array[2]{8, 9}, array[2]{8, 12}, array[2]{4, 5}, array[2]{4, 12}, array[2]{5, 13}, array[2]{9, 13}, array[2]{12, 13} }
#declare Faces = array[3]{ array[4]{9, 1, 5, 13}, array[4]{12, 4, 5, 13}, array[4]{12, 8, 9, 13} }
/////////////////////////////////////////////////////////////////////////////////////////////////
union{
// TRANSPARENT VERTICES AND EDGES
merge{
union{
#for( i, 0, dimension_size(TransparentVertices, 1)-1 )
#local VertexIndex = TransparentVertices[i] - 1;
#local Rank = VertexRanks[VertexIndex];
#local FakeRank = FakeRanks[Rank];
#local Rad = .05 + pow(10-FakeRank, 2) / 600;
sphere{ VertexPoints[VertexIndex]*Factor, Rad
#if(VertexRankParities[VertexIndex])
pigment{color rgbt TransparentDarkVertexColor}
#else
pigment{color rgbt TransparentLightVertexColor}
#end
}
#end
}
union{
#for( i, 0, dimension_size(TransparentEdges, 1)-1 )
#local Edge = TransparentEdges[i];
#local VertexIndex1 = Edge[0] - 1;
#local VertexIndex2 = Edge[1] - 1;
#local Point1 = VertexPoints[VertexIndex1]*Factor;
#local Point2 = VertexPoints[VertexIndex2]*Factor;
#local Rank1 = VertexRanks[VertexIndex1];
#local Rank2 = VertexRanks[VertexIndex2];
#local FakeRank1 = FakeRanks[Rank1];
#local FakeRank2 = FakeRanks[Rank2];
#local Rad1 = (.05 + pow(10-FakeRank1, 2) / 600) / 3.5;
#local Rad2 = (.05 + pow(10-FakeRank2, 2) / 600) / 3.5;
cone{ Point1, Rad1, Point2, Rad2 }
#end
pigment{color rgbt TransparentEdgeColor}
}
}
// SOLID VERTICES
union{
#for( i, 0, dimension_size(SolidVertices, 1)-1 )
#local VertexIndex = SolidVertices[i] - 1;
#local Rank = VertexRanks[VertexIndex];
#local FakeRank = FakeRanks[Rank];
#local Rad = .05 + pow(10-FakeRank, 2) / 600;
sphere{ VertexPoints[VertexIndex]*Factor, Rad
#if(VertexRankParities[VertexIndex])
pigment{color rgbt DarkVertexColor}
#else
pigment{color rgbt LightVertexColor}
#end
}
#end
}
// SOLID EDGES
union{
#for( i, 0, dimension_size(SolidEdges, 1)-1 )
#local Edge = SolidEdges[i];
#local VertexIndex1 = Edge[0] - 1;
#local VertexIndex2 = Edge[1] - 1;
#local Point1 = VertexPoints[VertexIndex1]*Factor;
#local Point2 = VertexPoints[VertexIndex2]*Factor;
#local Rank1 = VertexRanks[VertexIndex1];
#local Rank2 = VertexRanks[VertexIndex2];
#local FakeRank1 = FakeRanks[Rank1];
#local FakeRank2 = FakeRanks[Rank2];
#local Rad1 = (.05 + pow(10-FakeRank1, 2) / 600) / 3.5;
#local Rad2 = (.05 + pow(10-FakeRank2, 2) / 600) / 3.5;
cone{ Point1, Rad1, Point2, Rad2 }
#end
pigment{color rgbt EdgeColor}
}
// FACES
union{
#for( i, 0, dimension_size(Faces, 1)-1 )
#local FaceArray = Faces[i];
#local LenOfFaceArray = dimension_size(FaceArray, 1);
polygon{ LenOfFaceArray,
#for(VertexIndexInFace, 0, LenOfFaceArray-1)
#local VertexIndexInPolytope = FaceArray[VertexIndexInFace] - 1;
VertexPoints[VertexIndexInPolytope]*Factor
#end
}
#end
pigment{color rgbt RedFaceColor}
}
rotate -90*x
rotate 4*y
rotate 4*z
}
File history
Click on a date/time to view the file as it appeared at that time.
Date/Time | Thumbnail | Dimensions | User | Comment | |
---|---|---|---|---|---|
current | 20:26, 31 March 2018 | 3,624 × 3,990 (829 KB) | Watchduck (talk | contribs) |
You cannot overwrite this file.
File usage on Commons
The following 5 pages use this file:
- File:Concertina tesseract; single concertina cube, lower.png
- File:Concertina tesseract; single concertina cube, upper.png
- File:Tesseract tetrahedron shadow matrices.svg
- File:Tesseract tetrahedron shadow with alternating vertex colors, upper cube.png
- File:Tesseract tetrahedron shadow with alternating vertex colors.png
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 |
|
---|---|
Horizontal resolution | 28.35 dpc |
Vertical resolution | 28.35 dpc |
File change date and time | 15:38, 31 March 2018 |