Geometry snippets: Difference between revisions

From vegard.wiki
Jump to navigation Jump to search
Content added Content deleted
(new page)
 
(shortest distance from point to line)
 
Line 3: Line 3:
To obtain a line equation of the form <math>Ax + By + C = 0</math> from two points <math>a</math> and <math>b</math>, set:
To obtain a line equation of the form <math>Ax + By + C = 0</math> from two points <math>a</math> and <math>b</math>, set:


<math>
:<math>
\begin{align}
\begin{align}
A &= a_y - b_y \\
A &= a_y - b_y \\
Line 13: Line 13:
Source: https://bobobobo.wordpress.com/2008/01/07/solving-linear-equations-ax-by-c-0/
Source: https://bobobobo.wordpress.com/2008/01/07/solving-linear-equations-ax-by-c-0/


=== Distance from point to line segment ===
=== Shortest distance from point to line ===

Given a line <math>Ax + By + C = 0</math> and a point <math>p</math>, the shortest distance from the point to the line is given by:

:<math>
\frac{\left | A \cdot p_x + B \cdot p_y + C \right |}{\sqrt{A^2 + B^2}}
</math>

Source: https://www.toppr.com/guides/maths/straight-lines/distance-of-point-from-a-line/

=== Shortest distance from point to line segment ===


<source lang="C++">
<source lang="C++">

Latest revision as of 10:00, 28 January 2020

Line equation from two points

To obtain a line equation of the form from two points and , set:

Source: https://bobobobo.wordpress.com/2008/01/07/solving-linear-equations-ax-by-c-0/

Shortest distance from point to line

Given a line and a point , the shortest distance from the point to the line is given by:

Source: https://www.toppr.com/guides/maths/straight-lines/distance-of-point-from-a-line/

Shortest distance from point to line segment

// https://www.iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm
static float sdLineSegment(glm::vec2 p, glm::vec2 a, glm::vec2 b)
{
    auto pa = p - a;
    auto ba = b - a;
    auto h = glm::clamp(glm::dot(pa, ba) / glm::dot(ba, ba), 0.f, 1.f);
    return glm::length(pa - ba * h);
}