You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: NEWS.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,6 +3,8 @@
3
3
## 1.6.5
4
4
5
5
- Clarified the counter-clockwise requirement for the `clip_polygon` argument in `voronoi`. See [#230](https://github.com/JuliaGeometry/DelaunayTriangulation.jl/pull/230).
6
+
- Reduced spam during package tests. `@info` statements are now only shown on a failed test, and are now shown in the `Context` output of the failed test. See [#231](https://github.com/JuliaGeometry/DelaunayTriangulation.jl/pull/231).
7
+
- Removed docstrings on some methods that extended `Base` functions for internal use only. You can still find documentation on them by going to the method location and viewing the commented-out docstring. See [#231](https://github.com/JuliaGeometry/DelaunayTriangulation.jl/pull/231).
This example has been moved to Agent.jl's documentation. Please see the example [here]().
5
+
# Cellular Biology
6
+
This example has been moved to Agent.jl's documentation. Please
7
+
see the example [here](https://juliadynamics.github.io/Agents.jl/stable/examples/delaunay/).
8
+
9
+
## Just the code
10
+
An uncommented version of this example is given below.
11
+
You can view the source code for this file [here](https://github.com/JuliaGeometry/DelaunayTriangulation.jl/tree/main/docs/src/literate_applications/cell_simulations.jl).
12
+
13
+
```julia
14
+
15
+
```
16
+
17
+
---
6
18
7
19
*This page was generated using [Literate.jl](https://github.com/fredrikekre/Literate.jl).*
Copy file name to clipboardExpand all lines: docs/src/math/clipped.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ resize_to_layout!(fig)
25
25
```
26
26
27
27
```@example vornclip11
28
-
fig #hide
28
+
fig #hide
29
29
```
30
30
31
31
At the end of this section, we also discuss the intersection of $\mathcal V(\mathcal P)$ with a rectangle, and then discuss clipping $\mathcal V(\mathcal P)$ more generically to a given convex polygon.
@@ -100,7 +100,7 @@ resize_to_layout!(fig)
100
100
```
101
101
102
102
```@example vornclip11
103
-
fig #hide
103
+
fig #hide
104
104
```
105
105
106
106
In the first figure above, we are considering the processing of an edge $e$. The Voronoi polygon $\mathcal V$ we consider incident to $e$ is shown, obtained by finding that the midpoint of $e$ is contained in $\mathcal V$. By just processing the intersections of $\mathcal V$, we find the intersections with $\mathcal C\mathcal H(\mathcal P)$ (shown in magenta) shown in orange. This alone is not enough, though, as we can see that we don't identify that the black dot between $e_\ell$ and $e$ should be included in this intersection. This dot is an example of a corner point we were discussing previously, showing the need for this extra processing step. Note also from the above figure that unbounded polygons $\mathcal V$ alone are not sufficient for checking all intersections, as we can see that some of the bounded polygons also intersect with the convex hull. Eventually, after processing all edges in this way, we obtain the set of orange points shown in the second figure.
@@ -157,7 +157,7 @@ resize_to_layout!(fig)
157
157
```
158
158
159
159
```@example suthodg
160
-
fig #hide
160
+
fig #hide
161
161
```
162
162
163
163
In the figure above, the black polygon shows the subject polygon and the red polygon is the clip polygon. Our aim is to clip the subject polygon to the clip polygon to obtain the blue polygon shown. Letting $\mathcal P_S = \{p_1, \ldots, p_n\}$ and $\mathcal P_C = \{q_1, \ldots, q_m\}$ be the subject and clip polygons listed in counter-clockwise order with $p_1 \neq p_n$ and $q_1 \neq q_m$, respectively, the procedure for this clipping as follows:
@@ -208,7 +208,7 @@ resize_to_layout!(fig)
208
208
```
209
209
210
210
```@example suthodg
211
-
fig #hide
211
+
fig #hide
212
212
```
213
213
214
214
In the figure above, we show the individual steps of this algorithm. In the second panel, the blue line shows the extended edge of the clip polygon that we use to slice the subject polygon, clipping it onto the edge. For the next four panels, the blue line never touches the subject polygon, and so nothing happens. The last two panels show the last two clips needed to obtain the final polygon.
@@ -270,7 +270,7 @@ resize_to_layout!(fig)
270
270
```
271
271
272
272
```@example suthodg
273
-
fig #hide
273
+
fig #hide
274
274
```
275
275
276
276
In the figure above, the polygon we are interested is the one corresponding to the black dot, and we want to clip this polygon to the red rectangle. The following figures show how we grow the polygon's unbounded edges to begin.
@@ -324,7 +324,7 @@ resize_to_layout!(fig)
324
324
```
325
325
326
326
```@example suthodg
327
-
fig #hide
327
+
fig #hide
328
328
```
329
329
330
330
In these figures, the blue polygon shows the Voronoi polygon, and the green edges show the approximations to the unbounded rays; the top-most ray starts away from the polygon since the midpoint is further behind the associated circumcenter in this case. The magenta line shows the line segment joining the two approximations - the aim is to grow the green edges long enough such that the magenta line is completely outside of the red rectangle. Let's analyse each figure.
@@ -350,7 +350,7 @@ resize_to_layout!(fig)
350
350
```
351
351
352
352
```@example suthodg
353
-
fig #hide
353
+
fig #hide
354
354
```
355
355
356
356
## Computing the intersection of the Voronoi tessellation with a convex polygon
Copy file name to clipboardExpand all lines: docs/src/math/constrained.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -51,7 +51,7 @@ end
51
51
```
52
52
53
53
```@example segins1
54
-
fig #hide
54
+
fig #hide
55
55
```
56
56
57
57
To develop an algorithm, we need to notice one important thing from this figure: Since the blue segment will occlude visibility between any points on either side of the segment, the blue segment effectively divides, locally, the triangulation into two parts that no longer interact with each other. In the figure above, this means that any changes to the triangles bounded between the red curve and the blue segment will not interact those in the region bounded between the green curve and the bkue segment. This is a key observation that will allow us to develop an algorithm for inserting segments: we can handle the two sides separately.
@@ -151,7 +151,7 @@ resize_to_layout!(fig)
151
151
```
152
152
153
153
```@example segins1
154
-
fig #hide
154
+
fig #hide
155
155
```
156
156
157
157
## Adding Points into a Constrained Delaunay Triangulation
Copy file name to clipboardExpand all lines: docs/src/math/convex.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@ resize_to_layout!(fig)
41
41
```
42
42
43
43
```@example convpoly
44
-
fig #hide
44
+
fig #hide
45
45
```
46
46
47
47
See that at each stage the vertex $v_u$ to be added, shown in red, it lies outside of the triangulation, and only a single edge $e_{vw}$ separates $v_u$ from the triangulation. Thus, we can identify that the point location step amounts to finding this edge $e_{vw}$ so that we inserting $v_u$ into the triangulation can be done by retriangulating the cavity formed by the union of the triangles $T_{uvw}$ and the triangles containing $u$ in their circumcircles.
Copy file name to clipboardExpand all lines: docs/src/math/curve_bounded.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -65,7 +65,7 @@ resize_to_layout!(fig)
65
65
```
66
66
67
67
```@example curvbonddom1
68
-
fig #hide
68
+
fig #hide
69
69
```
70
70
71
71
In the figure above, we show an example of a set of subcurves $\{s_1, s_2, s_3, s_4, s_5, s_6\}$ together with a common apex vertex. We see that the curve $s_1$ forms no small angle with any other curve, and so it is not a part of any small angle complex. The curves $\{s_2, s_3, s_4\}$ together form a small angle complex since they form a contiguous set of small angles. The curve $s_5$ is not included in this complex since the angle between $s_4$ and $s_5$ is not small. Lastly, the curves $\{s_5, s_6\}$ define a small angle complex. See that it is possible for a single apex vertex to define several separate small angle complexes.
@@ -130,7 +130,7 @@ resize_to_layout!(fig)
130
130
```
131
131
132
132
```@example curvbonddom1
133
-
fig #hide
133
+
fig #hide
134
134
```
135
135
136
136
In the above figure, the subcurves of interest are the subcures defined by the curves from $a$ to each of the first blue points on each curve. These blue points and lines shows the piecewise linear approximation to each subcurve. The shortest edge length is then used to compute $r_{\max}$, giving the circle shown in red. The shell with radius $2^{\lfloor \log_2 r_{\max}}\rfloor$ is shown in green. We then split each of the subcurves at their intersection with this green curve, giving the points shown in green and the updated piecewise linear approximation in the second figure. All subsequent splits of these subcurves (those between $a$ and the new split points) will be at the next smaller power of two shell, i.e. $2^{\lfloor \log_2 r_{\max} \rfloor - 1}$.
Copy file name to clipboardExpand all lines: docs/src/math/curves.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -100,7 +100,7 @@ resize_to_layout!(fig)
100
100
```
101
101
102
102
```@example curvexs1
103
-
fig #hide
103
+
fig #hide
104
104
```
105
105
106
106
There are many orientation markers on this curve. Only two of these come from $\kappa(t) = 0$, with all the others coming from $x', y', x''$, and $y''$, as we can see from the graphs shown.
We can see that the circumcircles of the triangles contain no points in their interior. This is a Delaunay triangulation.
@@ -148,7 +148,7 @@ resize_to_layout!(fig)
148
148
```
149
149
150
150
```@example delaunay_ex1
151
-
fig #hide
151
+
fig #hide
152
152
```
153
153
154
154
In the above figure, we are considering insertion the red point into the triangulation. We then then all triangles whose circumcircles contain this red point, shown in blue. Deleting these triangles leaves behind a cavity shown in the third figure. Finally, connecting the vertices of the cavity to the red point gives the final triangulation.
The algorithm draws a line connecting some initial point $q$ and the search point $p$, as shown in red, and then marches along triangles until $p$ is found, traversing the blue triangles shown above.
@@ -254,7 +254,7 @@ resize_to_layout!(fig)
254
254
```
255
255
256
256
```@example delaunay_ex1
257
-
fig #hide
257
+
fig #hide
258
258
```
259
259
260
260
In this example, we are interested in the ghost triangle associated with the blue edge. The oriented outer halfplane for this edge can be defined simply as $H = \{(x, y) ∈ \mathbb R^2 : y > 1\} ∪ \{(x, y) ∈ \mathbb R^2 : 0 < x < 1, y = 1\}$. Using this definition, we see that the red point is not in $H$, the magenta point is in $H$ (in fact, it is exactly on $\partial H$, where $\partial H$ denotes the boundary of $H$), the black point is in $H$, and the green point is not in $H$.
@@ -301,7 +301,7 @@ resize_to_layout!(fig)
301
301
```
302
302
303
303
```@example delaunay_ex1
304
-
fig #hide
304
+
fig #hide
305
305
```
306
306
307
307
The ghost edges are the blue lines, and the central point is the red dot. With this definition, we therefore see that we can uniquely each region in space with a triangle - be it a ghost triangle or a real (solid) triangle.
0 commit comments