How to calculate the x/y coordinate of F in this diagram (geometry)

239 Views Asked by At

Diagram

In the diagram, I've provided, how do I calculate the $x$, $y$ coordinates of $F$ if the points $A$, $B$, $C$ are arbitrary points on a grid?

I'm looking for a formula to solve $F's$ $X$ axis and another formula to solve $F's$ $Y$ axis.

3

There are 3 best solutions below

1
On BEST ANSWER

I hope you are fit in simple vector algebra: First you compute the vectors

$\mathbf{c}=A-B$

$\mathbf{a}=C-B$.

By projecting $\mathbf{a}$ onto $\mathbf{c}$ you get the vector $\mathbf{x}$

$\mathbf{x}=\frac{\mathbf{a}\cdot\mathbf{c}}{\|\mathbf{c}\|^2}\mathbf{c}$

from which you can easily obtain the vector $\mathbf{y}=\mathbf{c}-\mathbf{x}$ and the point $F=B+\mathbf{x}$.

1
On

All you need do is to project the point C onto the line connecting A and B.

In general, the projection of a point $(c,d)$ onto a line $y=mx+b$ is

$$\begin{align*} x&=\frac{md + c - mb}{m^2 + 1}\\ y&=\frac{m^2 d + mc + b}{m^2 + 1} \end{align*}$$

0
On

I guess my question was moved to math.stackexchange.com a bit prematurely since I'm actually looking for an answer in "computer" rather than in "math" (since I'm not fluent in math :p).

I managed to find a website that broke down the answer in a way I was able to easily digest and here is a link to the answer was the best fit for me: http://forums.tigsource.com/index.php?topic=16501.0

In this pseudo code, p1, p2 and p3 are all vectors (eg p1.x, p1.y, p1.z). It should work with a 2D or 3D vector.

For those unfamiliar with dealing with vectors, when I write p1-p2, literally it means:

p1.x-p2.x; 
p1.y-p2.y; 
p1.z-p2.z;

This code seems to be working for me though

The important code bits are as follows (in pseudo code):

function getX(Vector p1, Vector p2, Vector p3):float
{
    Vector e = p2 - p1;
    return p1.x + e.x * dot(e, p3 - p1) / len2(e);
}

function len2(v):float
{
    return v.x*v.x + v.y*v.y;
}