Spherical Space Divisions And Fulldome Social Arrangements
This study examines a variety of methods of dividing the surface of a digital
projection dome. This is one of a series of studies for the creation of a visual metaphor for representing complex data clusters in spherical space.
|
|
Persistence of Vision Raytracer (POV-Ray)
is used to parametrically generate images of a multitude of schemes and variations for
full-dome sub-divisions. The images presented here are based on a typical
planetarium dome 55 feet (16.5 meters) in diameter, however the source code can
easily be edited to change the diameter.
A variety of table and seating arrangements are also explored. This is a
departure from the common theater-style seating now in use. In this way, social
networking and collaboration under the dome may also be studied. The
combination of spherical sub-divisions and seating layout create a unique
perceptual environment.
The POV-Ray Spheriphor generator uses two files, the main
Spheriphor_Study02.pov scene description file and an included file that contains
the parametric data used to generate a variety of layouts. Several different
include files are provided to illustrate how the parameters affect a change in
the geometry of the spherical sub-divisions and the seating layout.
- Create a file folder on your hard drive: c:\spheriphor\
- Copy the text from the table below and paste into the
POV-Ray text editor
- Select File>Save As... and enter the filename
- Spheriphor_Study02.pov main
scene description file
- Sample include files - use one of these at a time to provide input to
the main scene description file
- Edit the main Spheriphor_Study01.pov file to point to the
include data file that you wish to use
for example: #include "Spheriphor_Study02_01.inc"
- Click on the tab in POV-Ray for Spheriphor_Study02.pov and Run the
renderer
>Back to top
|
/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 14, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space
Command line options to redirect file output
Test resolution setting:
+FS24, +Lc:\spheriphor\, +OSpheriphor_Study02 Width=320, Height=240, +A
High resolution setting:
+FS24, +Lc:\spheriphor\, +OSpheriphor_Study02 Width=3072, Height=2304, +A
NOTES: +FS24 = System File (Windows BMP) 24bit color depth
*/
#include "stdinc.inc"
#include "shapes.inc" // Include Macro for Wedge shape
#include "Spheriphor_Study02_01.inc" // Include data for Grid parameters and seating layout
// Increase max_trace_level to calculate multiple layers of transparent objects
global_settings
{
//max_trace_level 20
//ambient_light rgb <0.7,0.7,0.7>
}
#declare Grid_finish = finish {
ambient 0.300
phong 0.9 phong_size 60 metallic
diffuse 0.700
specular 0.700
roughness 0.5
}
// *** BEGIN *** Create a mulitude of grids
#declare k = 0 ; // Initialize row value (array elements start at 0)
#declare Grid =
union {
#while (k < Row_cnt)
// Define the Spherical Grid
#declare Grid_Color1 = color Grid_color[k][0] ;
#declare Grid_Color2 = color Grid_color[k][1] ;
#declare Torus_r1 = Grid_val[k][0] ; // Spherical grid torus radius - primary
#declare Torus_r2 = Grid_val[k][1] ; // Spherical grid torus radius - secondary
#declare Qty_Lng_Torus = Grid_val[k][2] ; // Number of longitudinal divisions
#declare Qty_Lat_Torus = Grid_val[k][3] ; // Number of latitudinal divisions
#declare Phi_upper = Grid_val[k][4] ; // Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
#declare Phi_lower = Grid_val[k][5] ; // Lower bounding angle for latitudinal divisions (MUST BE <90)
#declare Theta_lower = Grid_val[k][6] ; // Lower bounding angle for longitutidinal divisions (12noon=0)
#declare Theta_upper = Grid_val[k][7] ; // Upper bounding angle for longitutidinal divisions (max angle=360)
#declare Angle_Lng_Torus = (Theta_upper-Theta_lower)/Qty_Lng_Torus ; // Angle between longitudinal divisions
#declare Angle_Lat_Torus = (Phi_lower-Phi_upper)/Qty_Lat_Torus ; // Angle between latitudinal divisions
// *** BEGIN Grid_Lat *** Series of latitudinal divisions
#declare Phi = Phi_upper ; // Initialize Phi to upper bounding angle
#declare i = 0 ; // Initialize i
#declare Grid_Lat_0 = // Create latitudinal grid from union of individual torus (whole prior to cutting)
union { // Create a latitudinal torus for each division
#while (i <= Qty_Lat_Torus )
#declare Lat_r1 = sind(Phi)*Torus_r1 ; // Torus radius according to Phi
#declare Lat_Ht = cosd(Phi)*Torus_r1 ; // Torus height according to Phi
torus { Lat_r1, Torus_r2
translate <0,Lat_Ht,0>
}
#declare Phi = Phi + Angle_Lat_Torus ; // Increment angle for next division
#declare i = i + 1 ;
#end
}
#declare Diff_wedge = // Creat wedge to subtract from Lat series
Wedge ( 360-(Theta_upper-Theta_lower) ) // Wedge macro from "shapes.inc" creates infinite wedge shape
#declare Grid_Lat_1 = // Lat grid cut at lower and upper bounding angles
difference { // Results in pie slice of lat torus series
object { Grid_Lat_0 } // Initial series of lat torus that wrap 360 deg
Wedge ( 360-(Theta_upper-Theta_lower) ) // Wedge macro from "shapes.inc" creates infinite wedge shape
}
#declare Grid_Lat = // Final Lat grid rotated to correct angle
object { Grid_Lat_1
rotate < 0,Theta_upper,0 > // Rotated to adjust for wedge generated fixed to zy plane
}
object { Grid_Lat // Instantiate the Grid_Lat object
pigment { Grid_Color1 }
finish { Grid_finish }
no_shadow
}
// *** End Grid_Lat *** Series of latitudinal divisions
// *** Begin Grid_Lng *** Series of longitudinal divisions
// Create the difference object that results in quarter torus
#declare Diff_dim1 = Torus_r1*1.5 ;
#declare Diff_dim2 = Torus_r2*1.5 ;
#declare Lng_Torus_Diff =
union {
box { <0,-Diff_dim2,Diff_dim1>, }
box { <-Diff_dim1,-Diff_dim2,0>, }
}
#declare Lng_Torus =
torus { Torus_r1, Torus_r2 }
#declare Lng_Torus_Qtr_0 = // Create quarter torus by subtracting difference object
difference {
object { Lng_Torus }
object { Lng_Torus_Diff }
}
#declare Lng_Torus_Qtr =
object { Lng_Torus_Qtr_0 rotate <0,0,-90> } // Rotate 90 degrees about Z axis lifting it up from XZ plane
// Create the series
#declare Theta = Theta_lower ; // Initialize Theta starting at lower boundary angle
#declare i = 0 ; // Initialize i
#declare Grid_Lng_0 =
union { // Create a latitudinal torus for each division
#while (i <= Qty_Lng_Torus )
object { Lng_Torus_Qtr
rotate <0,Theta,0> // Next rotate Theta degrees about Y axis
}
#declare Theta = Theta + Angle_Lng_Torus ; // Increment angle for next division
#declare i = i + 1 ;
#end
}
// Create difference object for cutting longitudinal grid torus lines at lower and upper bounding angles
#declare Diff_dim1 = Torus_r1*1.5 ; // Dimension of difference cylinder bigger than primary torus radius by factor of 1.5
#declare Diff_dim2 = Diff_dim1/tand(Phi_lower) ;
#declare Diff_dim3 = Diff_dim1/tand(Phi_upper) ;
#declare Grid_diff_lower =
difference { // Subtract bottom half of grid below the lower Phi bounding angle
cylinder { <0,-(Diff_dim2*1.5),0>,<0,0,0>,Diff_dim1 // Cylinder is big enough to contain the cone shaped cavity which is subtracted from it
translate <0,Diff_dim2,0 > // Cylinder is moved upward to position so that cone can be subtracted from it
}
cone { // This cone is subtracted from the cylinder creating a cone shaped cavity in the
<0,0,0>,0 // top of the cylinder which is based on the Phi_lower angle
<0,Diff_dim2,0>,Diff_dim1
}
}
#declare Grid_diff_upper = // Upper diff object is a cone with one apex at the center of the sphere
union {
cone { // Cone extends upward at angle determined by Diff_dim3 which was calculated
<0,0,0>,0 // based on the Phi_upper angle
<0,Diff_dim3,0>,Diff_dim1
}
cylinder { <0,0,0>,<0,Diff_dim1,0>,Diff_dim1
translate <0,Diff_dim3,0 > // Cylinder moved upward to position to meet with top of cone
}
}
#declare Grid_Lng = // Final longitudinal grid cut at lower and upper bounding angles
difference {
object { Grid_Lng_0 }
object { Grid_diff_lower }
object { Grid_diff_upper }
}
object { Grid_Lng // Instantiate the Grid_Lng object
pigment { Grid_Color2 }
finish { Grid_finish }
no_shadow
}
// *** END Grid_Lng *** Series of longitudinal divisions
#declare k = k + 1 ;
#end
}
// *** END *** Create a mulitude of grids
// *** BEGIN *** Create a mulitude of tables with people
/* P A R A M E T E R S - taken from the include file
Table_radius = Radius of the table
Table_ht = Height of table top (assuming 1.5 inch thickness)
Table_leg_cnt = Number of legs around each table
People_cnt = Number of people around each table
Table_people_cnt = Number of tables arrayed around area of floor just inside perimeter
*/
#declare Table_leg =
cylinder { <0,0,0>,<0,(Table_ht-1.5),0>,1 }
#declare k = 0 ; // Initialize row value (array elements start at 0)
#declare Table =
union {
cylinder { <0,(Table_ht-1.5),0>,<0,Table_ht,0>,Table_radius } // Table top
#while (k < Table_leg_cnt)
object { Table_leg
translate <0,0,(Table_radius*0.85)> // Move leg out from center of table at some distance less than the table radius
rotate <0,k*(360/Table_leg_cnt),0> // Array legs around table
}
#declare k = k + 1 ;
#end
}
#declare Person_leg =
union {
sphere { <0,28,0>,2 }
cylinder { <0,0,0>,<0,28,0>,2 }
}
#declare Person_torso =
union {
sphere { <0,0,0>,8 // Shoulders
scale <1,0.5,1>
translate <0,58,0>
}
cylinder { <0,32,0>,<0,58,0>,8 }
sphere { <0,68,0>,5.5 } // Head
}
#declare Person =
union {
object { Person_leg translate <4,0,0> }
object { Person_leg translate <-4,0,0> }
object { Person_torso scale <1,1,0.5> }
}
// Create table with several people around it
#declare k = 0 ; // Initialize row value (array elements start at 0)
#declare Table_people =
union {
object { Table }
#while (k < People_cnt)
object { Person
translate <0,0,(Table_radius*1.5)> // Move people out from center of table at some distance greater than the table radius
rotate <0,k*(360/People_cnt),0> // Array people around table
}
#declare k = k + 1 ;
#end
}
// Create the layout of tables and people
#declare k = 0 ; // Initialize row value (array elements start at 0)
#declare Table_layout_1 =
union {
#while (k < Table_people_cnt)
object { Table_people
translate <0,0,(Torus_r1*0.7)> // Move tables out from center of dome at some distance less than the dome radius
rotate <0,k*(360/Table_people_cnt),0> // Array tables around center of dome
}
#declare k = k + 1 ;
#end
}
#declare Table_people_cnt = Table_people_cnt/2 ; // Number of tables arrayed around middle of floor area
#declare k = 0 ; // Initialize row value (array elements start at 0)
#declare Table_layout_2 =
union {
#while (k < Table_people_cnt) // Half as many mnumber of tables around middle of floor area
object { Table_people
translate <0,0,(Torus_r1*0.35)> // Move tables out from center of dome at half the distance of the outer array of tables
rotate <0,k*(360/Table_people_cnt),0> // Array tables around center of dome
}
#declare k = k + 1 ;
#end
}
#declare Table_layout =
union {
object { Table_people }
object { Table_layout_1 }
object { Table_layout_2
rotate <0,(360/Table_people_cnt)/4,0>
}
}
// *** END *** Create a mulitude of tables with people
#declare BizViz =
union {
//object { Grid }
object { Table_layout
translate <0,-72,0>
pigment { Gray60 }
finish { Grid_finish }
}
disc { <0,-72,0>,y,Torus_r1 // Ground floor
pigment { Gray40 }
finish { Grid_finish }
}
}
object { BizViz }
/*
object { BizViz
rotate <0,clock*360,0> // Rotate around Y axis for animation
rotate <120,0,0>
translate <0,0,-35>
} */
// B A C K G R O U N D
background { color White }
// L I G H T S
#declare Light_dist = Torus_r1*4 ;
light_source {
color White }
light_source {
color LightSteelBlue }
/*
light_source {
color SummerSky //Gray40 White
spotlight
radius 65 falloff 70
fade_distance Light_dist*0.7
point_at <0,0,0>}
light_source { <-Light_dist,Light_dist,-Light_dist>
color SpicyPink // Gray40 White
spotlight
radius 65 falloff 70
fade_distance Light_dist*0.7
point_at <0,0,0>}
light_source { <-Light_dist,-Light_dist,Light_dist>
color SpringGreen //Gray40 White
spotlight
radius 65 falloff 70
fade_distance Light_dist*0.7
point_at <0,0,0>}
light_source {
color LightSteelBlue //Gray40 White
//spotlight
//radius 65 falloff 70
//fade_distance Light_dist*0.7
//point_at <0,0,0>
}
*/
// C A M E R A S
#declare Cam01 =
camera {
fisheye
location <0,0,0>
look_at <0,10,0>
angle 180
}
#declare Cam02 = // Plan view looking from +Y to -Y
camera {
location <0,Torus_r1*2,0>
look_at <0,0,0>
right 1.33*x
angle 70
}
#declare Cam03 = // Elevation view looking from -Z to +Z
camera {
location <0,Torus_r1/2,-Torus_r1*1.93>
look_at <0,-20,Torus_r1>
right 1.33*x
angle 70
}
#declare Cam04 = // Zoom in on a table and people
camera {
location <0,0,-Torus_r1*0.9>
look_at <0,0,0>
right 1.33*x
angle 70
}
camera { Cam03 }
|
/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 10, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space
Include file defines parameters used in POV file: Spheriphor_Study02.pov
All files are located in folder: c:\spheriphor\
*/
/* Definitions and example data for the Spherical Grid
#declare Grid_Color1 = color Blue ;
#declare Grid_Color2 = color Green ;
#declare Torus_r1 = 100 ; // Spherical grid torus radius - primary
#declare Torus_r2 = 0.5 ; // Spherical grid torus radius - secondary
#declare Qty_Lng_Torus = 9 ; // Number of longitudinal divisions
#declare Qty_Lat_Torus = 10 ; // Number of latitudinal divisions
#declare Phi_upper = 10 ; // Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
#declare Phi_lower = 89 ; // Lower bounding angle for latitudinal divisions (MUST BE <90)
#declare Theta_lower = 340 ; // Lower bounding angle for longitutidinal divisions (12noon=0)
#declare Theta_upper = 520 ; // Upper bounding angle for longitutidinal divisions (max angle=360)
*/
// P A R A M E T E R S
#declare Row_cnt = 7 ;
// Col 1 Col 2 Col 3 Col 4 Col 5 Col 6 Col 7 Col 8
// Torus_r1 Torus_r2 Qty_Lng_Torus Qty_Lat_Torus Phi_upper Phi_lower Theta_lower Theta_upper
#declare Grid_val = array[7][8] // Multi-dimensional array with 7 rows and 10 columns
{
{100, 0.5, 12, 3, 10, 20, 0, 360}, //Row 1
{100, 0.5, 6, 10, 30, 89, 0, 55}, //Row 2
{100, 0.5, 10, 05, 35, 75, 60, 115}, //Row 3
{100, 0.5, 6, 10, 30, 89, 120, 175}, //Row 4
{100, 0.5, 10, 15, 35, 75, 180, 235}, //Row 5
{100, 0.5, 6, 10, 30, 89, 240, 295}, //Row 6
{100, 0.5, 10, 15, 35, 75, 300, 355} //Row 7
} ;
// Col 1 Col 2
// Grid_Color1 Grid_Color2
#declare Grid_color = array[7][2] // Multi-dimensional array with 7 rows and 2 columns
{
{Blue, Green}, //Row 1
{Red, SkyBlue}, //Row 2
{Magenta, Yellow}, //Row 3
{Red, SkyBlue}, //Row 4
{Magenta, Yellow}, //Row 5
{Red, SkyBlue}, //Row 6
{Magenta, Yellow} //Row 7
} ;
|
/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 13, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space
Include file defines parameters used in POV file: Spheriphor_Stuyd02.pov
All files are located in folder: c:\spheriphor\
*/
/* Definitions and example data for the Spherical Grid
Grid_Color1 = Longitidunal grid line color
Grid_Color2 = Latitidunal grid line color
Torus_r1 = Spherical grid torus radius - primary (e.g. a 55 foot diameter dome has a radius of 27.5 feet or 330 inches)
Torus_r2 = Spherical grid torus radius - secondary
Qty_Lng_Torus = Number of longitudinal divisions
Qty_Lat_Torus = Number of latitudinal divisions
Phi_upper = Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
Phi_lower = Lower bounding angle for latitudinal divisions (MUST BE <90)
Theta_lower = Lower bounding angle for longitutidinal divisions (12noon=0)
Theta_upper = Upper bounding angle for longitutidinal divisions (max angle=360)
*/
// P A R A M E T E R S
#declare Row_cnt = 8 ;
#declare Grid_val = array[Row_cnt][8] // Multi-dimensional array with 8 rows and 8 columns
// Col 1 Col 2 Col 3 Col 4 Col 5 Col 6 Col 7 Col 8
// Torus_r1 Torus_r2 Qty_Lng_Torus Qty_Lat_Torus Phi_upper Phi_lower Theta_lower Theta_upper
{
{330, 1, 12, 4, 5, 25, 10, 170}, //Row 1
{330, 1, 10, 3, 5, 25, 190, 350}, //Row 2
{330, 1, 6, 8, 40, 65, 10, 100}, //Row 3
{330, 1, 5, 7, 70, 89, 10, 100}, //Row 4
{330, 1, 6, 8, 40, 65, 140, 220}, //Row 5
{330, 1, 5, 7, 70, 89, 140, 220}, //Row 6
{330, 1, 6, 8, 40, 65, 260, 340}, //Row 7
{330, 1, 5, 7, 70, 89, 260, 340} //Row 8
} ;
#declare Grid_color = array[Row_cnt][2] // Multi-dimensional array with 8 rows and 2 columns
// Col 1 Col 2
// Grid_Color1 Grid_Color2
{
{Blue, Green}, //Row 1
{Blue, Green}, //Row 2
{Red, SkyBlue}, //Row 3
{Turquoise, MandarinOrange}, //Row 4
{Red, SkyBlue}, //Row 5
{Turquoise, MandarinOrange}, //Row 6
{Red, SkyBlue}, //Row 7
{Turquoise, MandarinOrange} //Row 8
} ;
// Create a mulitude of tables with people - should relate to geometry of grids created above
// P A R A M E T E R S
#declare Table_radius = 36 ; // Radius of the table
#declare Table_ht = 28 ; // Height of table top (assuming 1.5 inch thickness)
#declare Table_leg_cnt = 4 ; // Number of legs around each table
#declare People_cnt = 6 ; // Number of people around each table
#declare Table_people_cnt = 6 ; // Number of tables arrayed around area of floor just inside perimeter
|
/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 13, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space
Include file defines parameters used in POV file: Spheriphor_Study02.pov
All files are located in folder: c:\spheriphor\
*/
/* Definitions and example data for the Spherical Grid
Grid_Color1 = Longitidunal grid line color
Grid_Color2 = Latitidunal grid line color
Torus_r1 = Spherical grid torus radius - primary (e.g. a 55 foot diameter dome has a radius of 27.5 feet or 330 inches)
Torus_r2 = Spherical grid torus radius - secondary
Qty_Lng_Torus = Number of longitudinal divisions
Qty_Lat_Torus = Number of latitudinal divisions
Phi_upper = Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
Phi_lower = Lower bounding angle for latitudinal divisions (MUST BE <90)
Theta_lower = Lower bounding angle for longitutidinal divisions (12noon=0)
Theta_upper = Upper bounding angle for longitutidinal divisions (max angle=360)
*/
// P A R A M E T E R S
#declare Row_cnt = 21 ;
#declare Grid_val = array[Row_cnt][8] // Multi-dimensional array with 8 rows and 8 columns
// Col 1 Col 2 Col 3 Col 4 Col 5 Col 6 Col 7 Col 8
// Torus_r1 Torus_r2 Qty_Lng_Torus Qty_Lat_Torus Phi_upper Phi_lower Theta_lower Theta_upper
{
{330, 1, 6, 3, 5, 35, 10, 110}, //Row 1
{330, 1, 6, 3, 5, 35, 130, 230}, //Row 2
{330, 1, 6, 3, 5, 35, 250, 350}, //Row 3
{330, 1, 4, 4, 45, 60, 5, 55}, //Row 4
{330, 1, 5, 6, 40, 65, 65, 115}, //Row 5
{330, 1, 4, 4, 45, 60, 125, 175}, //Row 6
{330, 1, 5, 6, 40, 65, 185, 235}, //Row 7
{330, 1, 4, 4, 45, 60, 245, 295}, //Row 8
{330, 1, 5, 6, 40, 65, 305, 355}, //Row 9
{330, 1, 5, 6, 70, 89, 2, 28}, //Row 10
{330, 1, 4, 7, 67, 89, 32, 58}, //Row 11
{330, 1, 5, 6, 70, 89, 62, 88}, //Row 12
{330, 1, 4, 7, 67, 89, 92, 118}, //Row 13
{330, 1, 5, 6, 70, 89, 122, 148}, //Row 14
{330, 1, 4, 7, 67, 89, 152, 178}, //Row 15
{330, 1, 5, 6, 70, 89, 182, 208}, //Row 16
{330, 1, 4, 7, 67, 89, 212, 238}, //Row 17
{330, 1, 5, 6, 70, 89, 242, 268}, //Row 18
{330, 1, 4, 7, 67, 89, 272, 298}, //Row 19
{330, 1, 5, 6, 70, 89, 302, 328}, //Row 20
{330, 1, 4, 7, 67, 89, 332, 358} //Row 21
} ;
#declare Grid_color = array[Row_cnt][2] // Multi-dimensional array with 8 rows and 2 columns
// Col 1 Col 2
// Grid_Color1 Grid_Color2
{
{Blue, Green}, //Row 1
{Blue, Green}, //Row 2
{Blue, Green}, //Row 3
{Red, SkyBlue}, //Row 4
{Turquoise, MandarinOrange}, //Row 5
{Red, SkyBlue}, //Row 6
{Turquoise, MandarinOrange}, //Row 7
{Red, SkyBlue}, //Row 8
{Turquoise, MandarinOrange}, //Row 9
{LimeGreen, MediumAquamarine}, //Row 10
{VioletRed, DarkPurple}, //Row 11
{LimeGreen, MediumAquamarine}, //Row 12
{VioletRed, DarkPurple}, //Row 13
{LimeGreen, MediumAquamarine}, //Row 14
{VioletRed, DarkPurple}, //Row 15
{LimeGreen, MediumAquamarine}, //Row 16
{VioletRed, DarkPurple}, //Row 17
{LimeGreen, MediumAquamarine}, //Row 18
{VioletRed, DarkPurple}, //Row 19
{LimeGreen, MediumAquamarine}, //Row 20
{VioletRed, DarkPurple} //Row 21
} ;
// Create a mulitude of tables with people - should relate to geometry of grids created above
// P A R A M E T E R S
#declare Table_radius = 36 ; // Radius of the table
#declare Table_ht = 28 ; // Height of table top (assuming 1.5 inch thickness)
#declare Table_leg_cnt = 4 ; // Number of legs around each table
#declare People_cnt = 6 ; // Number of people around each table
#declare Table_people_cnt = 6 ; // Number of tables arrayed around area of floor just inside perimeter
|
/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 13, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space
Include file defines parameters used in POV file: Spheriphor_Study02.pov
All files are located in folder: c:\spheriphor\
*/
/* Definitions and example data for the Spherical Grid
Grid_Color1 = Longitidunal grid line color
Grid_Color2 = Latitidunal grid line color
Torus_r1 = Spherical grid torus radius - primary (e.g. a 55 foot diameter dome has a radius of 27.5 feet or 330 inches)
Torus_r2 = Spherical grid torus radius - secondary
Qty_Lng_Torus = Number of longitudinal divisions
Qty_Lat_Torus = Number of latitudinal divisions
Phi_upper = Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
Phi_lower = Lower bounding angle for latitudinal divisions (MUST BE <90)
Theta_lower = Lower bounding angle for longitutidinal divisions (12noon=0)
Theta_upper = Upper bounding angle for longitutidinal divisions (max angle=360)
*/
// P A R A M E T E R S
#declare Row_cnt = 11 ;
#declare Grid_val = array[Row_cnt][8] // Multi-dimensional array with 8 rows and 8 columns
// Col 1 Col 2 Col 3 Col 4 Col 5 Col 6 Col 7 Col 8
// Torus_r1 Torus_r2 Qty_Lng_Torus Qty_Lat_Torus Phi_upper Phi_lower Theta_lower Theta_upper
{
{330, 1, 16, 5, 1, 20, 0, 360}, //Row 1
{330, 1, 8, 5, 30, 50, 5, 175}, //Row 2
{330, 1, 8, 5, 30, 50, 185, 355}, //Row 3
{330, 1, 6, 7, 55, 89, 2, 43}, //Row 4
{330, 1, 7, 6, 60, 80, 47, 88}, //Row 5
{330, 1, 6, 7, 55, 89, 92, 133}, //Row 6
{330, 1, 7, 6, 60, 80, 137, 178}, //Row 7
{330, 1, 6, 7, 55, 89, 182, 223}, //Row 8
{330, 1, 7, 6, 60, 80, 227, 268}, //Row 9
{330, 1, 6, 7, 55, 89, 272, 313}, //Row 10
{330, 1, 7, 6, 60, 80, 317, 358} //Row 11
} ;
#declare Grid_color = array[Row_cnt][2] // Multi-dimensional array with 8 rows and 2 columns
// Col 1 Col 2
// Grid_Color1 Grid_Color2
{
{Blue, Green}, //Row 1
{Red, SkyBlue}, //Row 2
{Red, SkyBlue}, //Row 3
{LimeGreen, MediumAquamarine}, //Row 4
{VioletRed, DarkPurple}, //Row 5
{LimeGreen, MediumAquamarine}, //Row 6
{VioletRed, DarkPurple}, //Row 7
{LimeGreen, MediumAquamarine}, //Row 8
{VioletRed, DarkPurple}, //Row 9
{LimeGreen, MediumAquamarine}, //Row 10
{VioletRed, DarkPurple} //Row 11
} ;
// Create a mulitude of tables with people - should relate to geometry of grids created above
// P A R A M E T E R S
#declare Table_radius = 36 ; // Radius of the table
#declare Table_ht = 28 ; // Height of table top (assuming 1.5 inch thickness)
#declare Table_leg_cnt = 4 ; // Number of legs around each table
#declare People_cnt = 4 ; // Number of people around each table
#declare Table_people_cnt = 8 ; // Number of tables arrayed around area of floor just inside perimeter
|
/*
Copyright (c) 2007 by Thomas J. Greenbaum. Some Rights Reserved.
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 License.
http://creativecommons.org/licenses/by-nc-sa/3.0/
Spheriphor Generator, version April 13, 2006
For creation of a visual metaphor for representing complex data clusters in spherical space
Include file defines parameters used in POV file: Spheriphor_Study02.pov
All files are located in folder: c:\spheriphor\
*/
/* Definitions and example data for the Spherical Grid
Grid_Color1 = Longitidunal grid line color
Grid_Color2 = Latitidunal grid line color
Torus_r1 = Spherical grid torus radius - primary (e.g. a 55 foot diameter dome has a radius of 27.5 feet or 330 inches)
Torus_r2 = Spherical grid torus radius - secondary
Qty_Lng_Torus = Number of longitudinal divisions
Qty_Lat_Torus = Number of latitudinal divisions
Phi_upper = Upper bounding angle for latitudinal divisions (zenith=0,equator=90)
Phi_lower = Lower bounding angle for latitudinal divisions (MUST BE <90)
Theta_lower = Lower bounding angle for longitutidinal divisions (12noon=0)
Theta_upper = Upper bounding angle for longitutidinal divisions (max angle=360)
*/
// P A R A M E T E R S
#declare Row_cnt = 16 ;
#declare Grid_val = array[Row_cnt][8] // Multi-dimensional array with 8 rows and 8 columns
// Col 1 Col 2 Col 3 Col 4 Col 5 Col 6 Col 7 Col 8
// Torus_r1 Torus_r2 Qty_Lng_Torus Qty_Lat_Torus Phi_upper Phi_lower Theta_lower Theta_upper
{
{330, 1, 2, 3, 8, 35, 5, 40}, //Row 1
{330, 1, 3, 4, 4, 30, 50, 85}, //Row 2
{330, 1, 2, 3, 8, 35, 95, 130}, //Row 3
{330, 1, 3, 4, 4, 30, 140, 175}, //Row 4
{330, 1, 2, 3, 8, 35, 185, 220}, //Row 5
{330, 1, 3, 4, 4, 30, 230, 265}, //Row 6
{330, 1, 2, 3, 8, 35, 275, 310}, //Row 7
{330, 1, 3, 4, 4, 30, 320, 355}, //Row 8
{330, 1, 8, 5, 38, 65, 5, 85}, //Row 9
{330, 1, 8, 5, 40, 68, 95, 175}, //Row 10
{330, 1, 8, 5, 38, 65, 185, 265}, //Row 11
{330, 1, 8, 5, 40, 68, 275, 355}, //Row 12
{330, 1, 10, 8, 70, 89, 50, 130}, //Row 13
{330, 1, 12, 10, 70, 89, 140, 220}, //Row 14
{330, 1, 10, 8, 70, 89, 230, 310}, //Row 15
{330, 1, 12, 10, 70, 89, 320, 400} //Row 16
} ;
#declare Grid_color = array[Row_cnt][2] // Multi-dimensional array with 8 rows and 2 columns
// Col 1 Col 2
// Grid_Color1 Grid_Color2
{
{LimeGreen, MediumAquamarine}, //Row 1
{VioletRed, DarkPurple}, //Row 2
{LimeGreen, MediumAquamarine}, //Row 3
{VioletRed, DarkPurple}, //Row 4
{LimeGreen, MediumAquamarine}, //Row 5
{VioletRed, DarkPurple}, //Row 6
{LimeGreen, MediumAquamarine}, //Row 7
{VioletRed, DarkPurple}, //Row 8
{CoolCopper, Coral}, //Row 9
{Goldenrod, Firebrick}, //Row 10
{CoolCopper, Coral}, //Row 11
{Goldenrod, Firebrick}, //Row 12
{Red, SkyBlue}, //Row 13
{Blue, Green}, //Row 14
{Red, SkyBlue}, //Row 15
{Blue, Green} //Row 16
} ;
// Create a mulitude of tables with people - should relate to geometry of grids created above
// P A R A M E T E R S
#declare Table_radius = 12 ; // Radius of the table
#declare Table_ht = 28 ; // Height of table top (assuming 1.5 inch thickness)
#declare Table_leg_cnt = 4 ; // Number of legs around each table
#declare People_cnt = 1 ; // Number of people around each table
#declare Table_people_cnt = 26 ; // Number of tables arrayed around area of floor just inside perimeter
|
|