Jump to content

# (quick question) How to move a mesh forward with trigonometry

## Recommended Posts

I feel silly asking about a relatively simple problem, but my trigonometry has been fading for over a decade now..

So, moving a mesh (character, projectile) forward taking into account its rotation in 2D space is simple enough with a Google search:

`m.rotation.y = Math.PI / 2; // or any value < 2pi.var x = Math.sin(m.rotation.y) * speed * delta;var z = Math.cos(m.rotation.y) * speed * delta;m.position.addInPlace(new BABYLON.Vector3(x, 0, z));`

How to extend it to account for its rotation on the x axis? simple trying either sin() or cos() on .rotation.x resulted in straying projectiles.

edit: probably the mesh-orientation-towards-target calculation needs extending as well to account for the y-axis

`// x and z are coords of desired mesh target locationdx = (mesh.position.x - x);dz = (mesh.position.z - z);var r = Math.atan(dx / dz);if (dz < 0) {    r -= Math.PI;}mesh.rotation.y = r;`

edit: playground http://www.babylonjs-playground.com/#ZWONO

##### Share on other sites

Different approach, but maybe not what you want (since it stops at the sphere and maybe some other differences): http://www.babylonjs-playground.com/#ZWONO#1

##### Share on other sites

Yet another approach, which again might not be what you want http://www.babylonjs-playground.com/#ZWONO#2

By variations in the given  angle and speed (which are determined in such a way as to hit the sphere) you can make it miss.

EDIT Added a lookAt to orientate the box.

http://www.babylonjs-playground.com/#ZWONO#3

##### Share on other sites

Thanks! both are helpful, and cleaner than my original.

edit: Also thanks for the code comments.

##### Share on other sites

Thanks, also using this slightly modified for unguided projectiles

## Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
• ### Recently Browsing   0 members

• No registered users viewing this page.
×
×
• Create New...