blob: 365db9bad4988951bb2f8177c62d459e4859edec (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
<?xml version="1.0" encoding="UTF-8"?>
<screensaver name="sphereeversion" _label="Sphere Eversion" gl="yes">
<video href="https://www.youtube.com/watch?v=CbmIggJ5GdA"/>
<command arg="-root"/>
<hgroup>
<vgroup>
<number id="deform-speed" type="slider" arg="-deformation-speed %"
_label="Deformation speed"
_low-label="1.0" _high-label="100.0"
low="1.0" high="100.0" default="10.0"/>
<select id="surface-order">
<option id="random" _label="Random surface order"/>
<option id="2" _label="2" arg-set="-surface-order 2"/>
<option id="3" _label="3" arg-set="-surface-order 3"/>
<option id="4" _label="4" arg-set="-surface-order 4"/>
<option id="5" _label="5" arg-set="-surface-order 5"/>
</select>
</vgroup>
<vgroup>
<select id="display-mode">
<option id="random" _label="Random surface"/>
<option id="surface" _label="Solid surface" arg-set="-mode surface"/>
<option id="transparent" _label="Transparent surface" arg-set="-mode transparent"/>
</select>
<select id="appearance">
<option id="random" _label="Random pattern"/>
<option id="solid" _label="Solid object" arg-set="-appearance solid"/>
<option id="bands" _label="Parallel bands" arg-set="-appearance parallel-bands"/>
<option id="bands" _label="Meridian bands" arg-set="-appearance meridian-bands"/>
</select>
<select id="graticule">
<option id="random" _label="Random graticule"/>
<option id="bands" _label="With graticule" arg-set="-graticule on"/>
<option id="bands" _label="Without graticule" arg-set="-graticule off"/>
</select>
<select id="colors">
<option id="random" _label="Random coloration"/>
<option id="twosided" _label="Two-sided" arg-set="-colors two-sided"/>
<option id="rainbow" _label="Parallel colors" arg-set="-colors parallel"/>
<option id="rainbow" _label="Meridian colors" arg-set="-colors meridian"/>
</select>
<select id="projection">
<option id="random" _label="Random Projection"/>
<option id="perspective" _label="Perspective" arg-set="-projection perspective"/>
<option id="orthographic" _label="Orthographic" arg-set="-projection orthographic"/>
</select>
</vgroup>
<vgroup>
<number id="speed-x" type="slider" arg="-speed-x %"
_label="X rotation speed"
_low-label="-4.0" _high-label="4.0"
low="-4.0" high="4.0" default="0.0"/>
<number id="speed-y" type="slider" arg="-speed-y %"
_label="Y rotation speed"
_low-label="-4.0" _high-label="4.0"
low="-4.0" high="4.0" default="0.0"/>
<number id="speed-z" type="slider" arg="-speed-z %"
_label="Z rotation speed"
_low-label="-4.0" _high-label="4.0"
low="-4.0" high="4.0" default="0.0"/>
</vgroup>
<vgroup>
<xscreensaver-updater />
<boolean id="showfps" _label="Show frame rate" arg-set="-fps"/>
</vgroup>
</hgroup>
<_description>
Turns a sphere inside out: a smooth deformation (homotopy). During the
eversion, the deformed sphere is allowed to intersect itself transversally,
however, no creases or pinch points occur.
Inspired by the following paper: Adam Bednorz, Witold Bednorz:
"Analytic sphere eversion using ruled surfaces", Differential Geometry
and its Applications 64:59-79, 2019.
https://en.wikipedia.org/wiki/Sphere_eversion
https://mathworld.wolfram.com/SphereEversion.html
Written by Carsten Steger; 2020.
</_description>
</screensaver>
|