Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>You can look at this as static case in 3D with time as additional coordinate. Circle with path became frustum and ray is in a plane time=t<sub>k</sub>. If frustums are not positioned too dense than binary space partitioning (k-d tree, ...) can help.</p> <p>To find all partitions crossed by ray first find partition where is origin and than traverse (in tree) by partition neighbour in ray direction. It depends on partitioning method used. It is linear in number of partitions crossed by ray.</p> <p><strong>Update:</strong> It is idea to put frustum in each partition it is touching. One frustum will be in more partitions.</p> <p>This is an example in 1 dimension plus time. Everything is same, circles have starting and ending point and starting and ending radius.</p> <pre><code>1 | E / | . / | . / | . / | . / 0 | S / t/X </code></pre> <p>Partitioning in X direction:</p> <pre><code> | E : / | . :/ | . : | . /: | . / : | S / : X </code></pre> <p>This trapezoid will go in both partitions.</p> <p>Partitioning in time direction:</p> <pre><code> | E : / | . :/ | . : t------------------- | . / : | S / : X </code></pre> <p>Trapezoid from X left partition will go in both time partitions, while in X right partition it will go only in upper partition.</p> <p>To implement it it is needed to calculate is there an intersection between line and axis plane on some plane part and if there is no intersection on which side of a plane is a line. Calculation is same in 2D case, or even in higher dimensions.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload