[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex
From: |
Janne V. Kujala |
Subject: |
[Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex |
Date: |
Thu, 28 Nov 2002 04:29:41 -0500 |
CVSROOT: /cvsroot/gzz
Module name: gzz
Changes by: Janne V. Kujala <address@hidden> 02/11/28 04:29:41
Modified files:
Documentation/Manuscripts/Irregu: irregu.tex
Log message:
How
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gzz/gzz/Documentation/Manuscripts/Irregu/irregu.tex.diff?tr1=1.74&tr2=1.75&r1=text&r2=text
Patches:
Index: gzz/Documentation/Manuscripts/Irregu/irregu.tex
diff -u gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.74
gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.75
--- gzz/Documentation/Manuscripts/Irregu/irregu.tex:1.74 Wed Nov 27
11:28:51 2002
+++ gzz/Documentation/Manuscripts/Irregu/irregu.tex Thu Nov 28 04:29:41 2002
@@ -183,6 +183,8 @@
The irregular windows are not used as viewports,
since they always show the whole irregular object,
not only part of it.
+% XXX: they *are* used as viewports, e.g., a magnifying glass filter
+% in the toolglass system
% benja notes: There's some kind of connection to your irregu stuff
% here: e.g. in xupdf, too, the point is to show
@@ -364,6 +366,35 @@
and discuss
a simple algorithm for a shape with the desired properties.
+SCRATCH:
+
+Suppose $A \subset \mathbf{R}^2$ is the part of the canvas we want to tear
off, for example, a rectangle or a smooth ellipse.
+We want to define the corresponding irregular piece $B \subset \mathbf{R}^2$
+so as to satisify the ``natural movement'' propery:
+\[
+ A = A_1 \cup A_2 \Rightarrow B = B_1 \cup B_2,
+\]
+for all $A, A_1, A_2 \subset \mathbf{R}^2$ and
+matching irregular shapes $B, B_1, B_2 \subset \mathbf{R}^2$.
+From this porperty, it follows that the mapping fomr $A$'s to $B$'s
+is actually defined by a point relation $R \in \mathbf{R}^2$:
+\[
+ B = \{\, y \mid \exists x \in A: x R y \,\}
+\]
+If $R$ is a function, i.e., $x R y \Leftrightarrow y = f(x)$,
+the irregular shapes will be connected (if the original shape is connected),
+but some parts of original
+shape may map to overlapping parts in the irregular shape.
+If $R$ is a function in the inverse direction, i.e.,
+$x R y \Leftrightarrow g(y) = x$,
+there will be no overlapping, but the irregular shape may be scattered.
+If the function is bijection, the topology of the irregular shape
+will match the topology of the original shape.
+
+XXX: relaxing the ``natural movement'' property \dots
+
+---
+
To start off, assume that we are drawing the torn edge inside a
given \emph{envelope}.
The envelope is parametrized as a mapping $E(x,y)$ to canvas coordinates
@@ -376,7 +407,7 @@
The edge curve $C(x)$ of a conneccted shape can be obtained by simply
shifting in the normal direction of the envelope by a function
-$0\le f({\bf p})\le 1$ which only depends on the location ${\bf p}$ of the
spine:
+$0\le f({\bf p})\le 1$ which only depends on the location ${\bf p}$ of the
spine:
$C(x) = E(x, f(E(x,1/2)))$.
The scattered case, on the other hand, can be obtained through a decision
process:
@@ -728,7 +759,7 @@
tying ripple shape to canvas location.
The problem can be fully solved with a vector valued ripple function
-${\bf F}({\bf p})$, $\Vert{\bf F}({\bf p})\Vert \le 1$,
+${\bf F}({\bf p})$, $\Vert{\bf F}({\bf p})\Vert \le 1$,
using $f({\bf p}) = (1 + {\bf d}\cdot {\bf F}({\bf p}))/2$,
where ${\bf d}$ is the unit normal
of the envelope. The dot product automatically inverts the
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, (continued)
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/20
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/20
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/20
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/20
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Benja Fallenstein, 2002/11/22
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/27
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/27
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/27
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Tuomas J. Lukka, 2002/11/27
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/27
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex,
Janne V. Kujala <=
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/28
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/29
- [Gzz-commits] gzz/Documentation/Manuscripts/Irregu irregu.tex, Janne V. Kujala, 2002/11/29