-1
$\begingroup$

I am aware of the formula for acceleration given velocity over time, however I would like a way to apply a constant acceleration (say $4m/s^2$) to a direction vector. How can I write such an equation?

Specifics:

I know the scalar value of my acceleration through f=ma, which is ~$4 m/s^2$

I know the direction I am facing in x, y, z coordinates

I want to apply the acceleration proportionately to the direction I'm facing (ie I can't add $2t^2$ to all axis as I will not be moving at the same rate in all axis). Say I have my normalized direction vector. My x direction is 0.6, my y is 0.5, and my z is 0.3. Would I just divide each value by the sum total of the three and then add that percentage of my acceleration to each component in the direction vector? So I add $% * 1/2at^2$ to each component?

Here's what I'm thinking:

$A_x = {\displaystyle \frac{|i|}{|i+j+k|}} \times 0.5 \times at^2$

$A_y = {\displaystyle \frac{|j|}{|i+j+k|}} \times 0.5 \times at^2 $

$A_z = {\displaystyle \frac{|k|}{|i+j+k|}} \times 0.5 \times at^2$

$\endgroup$
4
  • $\begingroup$ Do you know Pythagoras's theorem - is it applicable to your geometry? Also is this homework please tag as such. $\endgroup$
    – JMLCarter
    Commented Sep 26, 2017 at 20:46
  • $\begingroup$ Yes I am familiar with the theorem, and no I don't see how it would be applicable. Also, this is not homework, this is just for personal use. $\endgroup$
    – Jon T.
    Commented Sep 26, 2017 at 23:58
  • $\begingroup$ @JonT. we do not care how you came to the problem; we care whether it asks a conceptual question that could be useful to someone other than you. If not then we close it as "homework-like" even if it was not homework that you were assigned. $\endgroup$
    – CR Drost
    Commented Sep 27, 2017 at 0:43
  • $\begingroup$ Jon T., Pythagoras' theorem has been mentioned because using it you arrive at $\sqrt{a_x^2+a_y^2+a_z^2}=|\vec{a}|=4$, see en.wikipedia.org/wiki/Pythagorean_theorem#Solid_geometry . With that you can correct your guess. $\endgroup$
    – stafusa
    Commented Sep 27, 2017 at 3:54

1 Answer 1

1
$\begingroup$

No.

Just multiply your direction vector by the scalar magnitude.

If you direction vector is $\hat{d}$, and your scalar acceleration is $a$, the the vector acceleration is $\vec{a}=a\hat{d}$. (The hat on $d$ is a standard way of denoting a vector whose magnitude in 1.)

Note, however, that you have an error. The components you wrote for your direction vector are not normalized.

$\endgroup$
4
  • $\begingroup$ Hmm, so it IS just multiplied across? If I output my velocity vector to the screen, and move forward, the velocity increases dramatically faster in the direction component with the greatest value. For example: My current forward vector: x : 0.934... y : 0.0176... z : -0.0174... When I move forward, my velocity in the x plane increases rapidly, while the other two remain below 0 for quite a while. As for the normalization, I used "Vector3D.Normalize(forward - remote.GetPosition()" to create the direction vector. The numbers above were arbitrary. Unless that's not what you meant? $\endgroup$
    – Jon T.
    Commented Sep 26, 2017 at 19:09
  • $\begingroup$ I don't know what software package you are using, but it sounds like that function returns a position vector, not an acceleration vector. It does seem like it should return a normalized vector, however. You'll have to check the software API documentation to see exactly what that function produces. $\endgroup$
    – garyp
    Commented Sep 27, 2017 at 2:34
  • $\begingroup$ Oh no! Sorry, the function described above is for obtaining my direction vector. Then I multiplied it by the scalar per your answer. $\endgroup$
    – Jon T.
    Commented Sep 27, 2017 at 4:27
  • $\begingroup$ Direction of what? Position relative to the origin? Velocity? Acceleration? $\endgroup$
    – garyp
    Commented Sep 27, 2017 at 11:05

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