Code covered by the BSD License  

Highlights from
A Viking Ship

image thumbnail
from A Viking Ship by Pontus Axelsson
A fully-rigged Viking ship with animation.

f=watersurface()
function f=watersurface()

% Berkning av vattenlinjen medelst sekantmetoden.

global spunkter rpos botten nx ny

vikt=.5; 		% Farkostens vikt angett i ton.
zguess1=0.3;		% Gissningar av vattenlinjens hjd
zguess2=0.4;		% fr lsning med sekantmetoden.
spunkter=[];		% Skrningspunkter med vattnet,
                        % fr att kunna plotta detsamma.
iter=0; zfel=1;
[spunkter v1]=volymunder(rpos,botten,nx,ny,zguess1);
v1=v1-vikt;             % Ger avvikelsen frn den nskade volymen.
while abs(zfel)>1e-4 & iter<10
  [spunkter v2]=volymunder(rpos,botten,nx,ny,zguess2);
  v2=v2-vikt;
  zfel=(zguess2-zguess1)/(v2-v1)*v2;
  zguess1=zguess2;
  v1=v2;
  zguess2=zguess2-zfel;
  iter=iter+1;
end

f=zguess2;
Vattenlinje=f

Contact us at files@mathworks.com