-
Notifications
You must be signed in to change notification settings - Fork 0
/
TODO
186 lines (130 loc) · 5.67 KB
/
TODO
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
TODO :
NEW TODO FOR cube_opengl use svg parsing to ima
* support for svgpath bezier done
* now need to support <rect> for parsing.
* need to directly parse xml svg content within tool ( and not rely on external xslt transform )
Phase 0 :
Need POST from javascript to submit an image to server.
Then need a server recording feature.
- deploy server on prototype.artisanlogiciel.net
=> need server to interroperate with javascript.
Document this basic deployment.
infinite canvas, infinite zoom.
- every image ( which is a set of lines ) belong to one depth, ie images are within a plan.
- playing with zoom :
- current display start at a given depth, let's call it MinDepth and flow to infinite.
- Zoom Cone : factor of reduction of image size at each relative depth is a function, depending on that function you can have photographic effects, ZoneShape(relative_depth)=factor.
- there is a MaxDepth at which every image is reduced to a pixel, this depends on ZoneShape function.
=> this imply that when depth grow lines reduce in size but visible part of image grows.
It is up to client application to know what to ask for.
client application start always to load from MinDepth then increase up to maxdepth.
Each image is named and its name is unique.
There is an initial image named defaultimg, this image is unique absolute reference.
Any other image is relative.
IE any other image has :
- relative Depth : relative Depth with previous image.
- next/previous ImageInPlan : next image in this plan ( same depth ).
- next/previous ImageInDepth : next image in next depth.
Scene :
Plan -> Image
relPos, Image
relPos, Image
relPos, Image
relPos, nextScene.
relDepth, deeperScene
( relDepth, closerScene ).
=================================================================
Initial TODO of 2000... ( and i don't understand it ).
=================================================================
- Make Server a Servlet.
- Add A Graphical interface to give a name to file saved / load
- Automatic Save.
* Thresholds
number of ShareDrawLine
number of Points
number of bytes
surface filled :
Given a line as a width of 1 pixel
fractal surface is then sum of length of vectors less number of intersections.
sum of length of vectors is then a maximizer
of surface. a vector can't intercept more than all previous vectors already
printed. then number of intersections can't be more than
S [O..n,i] ( S [0..i-1,j] j) < (( n - 1) ^ 3 ) / 2
where n is number of vectors. given rapid growth of n^3 a minimizer of fractal
surface is not easy to find.
[ we eliminate in this case equipotent vectors that intersects on a
vector...]
To approximate number of intersections we can use bounds intersections...
I decide to use maximizer function that do sum of length of vectors = Msurf
maximum of true surface filleable is width * height.
user set a threshold in percent of this surface for Msurf.
This threshold can exceed 100% given Msurf is a maximizer of surface, but it
is not a good idea to set it to more than 100% i think ( you will accept very
dark images ).
With a threshold set images with no intersection can't fill more than real
percentage of surface, images with intersections will fill less than this
percentage; then this percentage is really a maximum fillable surface.
40% seems for me a good compromise.
System of pluggable Policy :
- force save
- reset image or compress image to go bellow threshold.
Problem / scenario
adding a line to image
image has reached surface threshold
save it
suppress first line
adding a line to image
adding a line to image
image has reached surface thresold
don't save it as we have already saved quasi identical image previously !
suppress first line.
=> Then an information need to point when image need to be saved.
An image need to be saved when we wan't to suppress a line we didn't already
save.
Then saving is not done by Threshold Policy ( that just do discarding ) but by
a KeepTrack Policy.
KeepTrack Policy should have
number of files limits
naming conventions
allowing round buffer ( reusing older files when maximal number of files is
reached )
Hysteris problems :
when a thresold is continuously meet there is a hysteresis problem.
In our case image modification ( reduction ) should be by an amount that
reduce hysteris.
What need a Threshold Policy to work ?
functions
- to be advertised when a line is added / removed.
- to control removing or reworking of lines over an Image.
- to set heuristics values to lines.
Q: can heuristics be computed on client side ?
settings
- internal threshold value
What need a KeepTrack Policy to work ?
functions
- to be advertised when a line is added (tag new) / removed
- to acces whole Image to save it.
- to set tag (new or saved) to all lines.
settings
- directory used
- prefix naming
- number of files
* Add time and date on files.
- limit expansion of images ( set bounds for images parts ).
usefull for surface filled threshold and for limiting netword traffic to a
limited size.
Full view will be in fact a patchwork of images of same size, setting no
limits to full view ! This allow round view ( top <-> bottom, left <-> right )
- Use compression over RMI ( WriteObject Kompress, ReadObject Expand)
- Use Compression over Servlet Client !
----------------------------------------------------------------------------------------
split image into little pieces.
hierachical view :
Tree view, width first run.
( root,(m, child), (m, child), ..)
( ImageRef ,(Matrix, ImageRef), (Matrix, ImageRef), ..)
Matrix : used to transform child coordinates into root coordinates.
coordinates of images are integer in a fixed range ( [0..MaxX], [0..MaxY])
=================================================
2002
After 2 years of sleep the dragon goes out.