Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I am trying to create a straight line in the Cartesian space made from two points that have (x,y,z) coordinates. This is for a making a robot arm move in a straight line, I would input two points and the math would give me back a certain numbers of points that create a straight line from point A to point B. The robot arm moves on a circular base.

I think I should use the equation of a line: $ax + by + c = 0$.

But I'm not exactly sure how I would get the intermediate points from that and if it works for 3 dimensions. If this is to vague let me know and I can further clarify.

share|improve this question
Just so you know, what you are describing is actually Cartesian/Euclidean space, not the Cartesian plane. It is a subtle difference, but an important one. Your equation $ax+by+c=0$ correctly describes a line in the Cartesian plane, but not so in Cartesian/Euclidean space. –  Michael Boratko Dec 1 '11 at 21:51
add comment

3 Answers

up vote 3 down vote accepted

The equation you gave, $ax+by+c=0$, is the equation for a line in two dimentions. In three dimensions, you can define a line by a point and a vector. This is not in contradiction with the idea that two points determine a line, as obviously there is a vector between two points and therefore by specifying two points you have also specified a point and a vector. This is probably all too pedantic to be worthwhile discussing further, so let's move on to the specific useful example.

Let one point be defined as $P=(x_p,y_p,z_p)$, and another point be defined as $Q=(x_q,y_q,z_q)$. Then we can define the line $L$ as follows:

$$L=\{P+t(Q-P)\}$$ where $t$ is any real number. To dissect this a little bit, this shows us that $P$ is in the set (for $t=0$), and $Q$ is in the set (for $t=1$). By allowing $t$ to be any real number, we are scaling the vector between $P$ and $Q$, and this is what gives us the whole line.

Now, we consider any arbitrary point on the line, which we will define as $(x,y,z)$. If this point is on the line, then it is in the set $L$ and so we must have $$\begin{align}x=&x_p+t(x_q-x_p)\\ y=&y_p+t(y_q-y_p)\\ z=&z_p+t(z_q-z_p) \end{align}$$ These equations are parametric, that is they depend on a parameter $t$, but such equations are necessary in order to describe a line in three dimensions. Obviously, if the line happened to be in one of the planes, say the $xy$ plane, then $z_p=z_q=0$, and so the equations could be solved for $t$. Substituting, you would get the familiar two-dimensional equation for a line, however in general the best you can do is solve for $t$ in the above equations and reduce the three equations to two.

It is also common to write the so-called "symmetric" equations for a line in three dimensions by solving for $t$ and setting all three equal to each other, like so: $$\frac{x-x_p}{x_q-x_p}=\frac{y-y_p}{y_q-y_p}=\frac{z-z_p}{z_q-z_p}$$

Unfortunately, I don't think these sorts of equations will help with your robot project, but perhaps the discussion will engender some good ideas. You can take a look at Paul's Online Notes for more discussion about how lines are represented in three dimensions. He doesn't follow exactly the same approach as I have outlined here, but it is very similar.

You mentioned that the robot arm is on a circular base, and as such it might be advantageous to look into using Spherical Coordinates (which may simplify many of the computational aspects of movement).

share|improve this answer
Thank you, this was almost verbatim what my professor explained to me to do after meeting with him. –  Nick Dec 2 '11 at 0:09
add comment

You might also want to look up the Peaucellier–Lipkin linkage, which converts circular motion to rectilinear motion.

share|improve this answer
add comment

parameterized formula for a line through 2 points $P_1=(x_1,y_1,z_1)$ and $P_2=(x_2,y_2,z_2)$

$$\begin{cases} x=x_1+t\cdot(x_2-x_1) \\ y=y_1+t\cdot(y_2-y_1) \\ x=z_1+t\cdot(z_2-z_1) \\ \end{cases}$$

vary $t$ to get a sample of points where $t\in[0,1]$ gives points $\in[P_1,P_2]$

you can also use the weighted average of the 2 points

$$\begin{cases} x=t\cdot x_1+(1-t)\cdot x_2 \\ y=t\cdot y_1+(1-t)\cdot y_2 \\ x=t\cdot z_1+(1-t)\cdot z_2 \\ \end{cases}$$

again $t\in[0,1]$ for points $\in[P_1,P_2]$

you can eliminate the $t$ so you get 2 formulas (as the intersection of 2 planes)

share|improve this answer
add comment

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.