# Movement of Sailboats

## Recommended Posts

Hallo, I would like to simulate the movement of a sailboat in 2D from the following:
• wind including direction and velocity
• position of helm
• position of sail
• mass of boat
• shape of boat
Do I need more? Where would I find the needed equations? Would a 2D physics engine help here or not?

##### Share on other sites
Well, it's pretty complex!

There are lots of interactions between the hull and water, the keel, the mainsail, the headsail (spinnaker?), heeling, weight distribution, the direction of the wind relative to the sail, the position mast, the orientation of the sail relative to the boat, relative to the wind, rudder, the direction of the water current...

Not sure where I'd start to simplify things.

##### Share on other sites
For a simple model, you could take the relative wind velocity (that it's relative to the boat's is important) and reflect it off of the sail (treated as a flat plate). The change of momentum of the air is precisely twice the component of the relative velocity along the sail's normal. Now assuming no sideslip (possibly a bad assumption, but let's go with it for now; we've got an infinitely-good keel), the net force exerted on the boat is just the projection of this vector onto the boat's heading vector.

To summarize, I guess what I'm saying is,

where

v_wind = wind velocity vector
v_boat = boat velocity vector
n_sail = sail unit normal

and the angle brackets denote inner products.

I've left out an air density factor in here, but since this is a game and you'll be tuning constants anyway it doesn't really matter.

Now about the "no sideslip" assumption... in fact, the keel only generates side force when the boat is moving. So perhaps you could actually use,

g(<v_boat, u_heading>) <v_wind - v_boat, n_sail> <n_sail, u_right> u_right

where u_right is the boat's right (or should I say starbord?) vector, and g is some decreasing function which rapidly decays to zero, e.g. g(x) = exp(-gamma x), where gamma is some positive constant. But now I'm just making stuff up.

## Create an account

Register a new account

• ### Forum Statistics

• Total Topics
627734
• Total Posts
2978846

• 10
• 10
• 21
• 14
• 12