Checked content

File:Normal and tangent illustration.png

Made by myself with matlab.

Public domain I, the copyright holder of this work, release this work into the public domain. This applies worldwide.
In some countries this may not be legally possible; if so:
I grant anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.


Converted to SVG.svg This diagram image could be recreated using vector graphics as an SVG file. This has several advantages; see Commons:Media for cleanup for more information. If an SVG form of this image is already available, please upload it. After uploading an SVG, replace this template with {{ vector version available|new image name.svg}}.

Source code ( MATLAB)

% an illustration of tangent and normal components of a vector to a surface
 
% a few settings
BoxSize=5;
N=100;
gridsize=BoxSize/N;
lw=3;  % linewidth
fs=30; % fontsize
 
% the function giving the surface and its gradient
f=inline('10-(x.^2+y.^2)/15', 'x', 'y');
fx=inline('-2*x/15', 'x', 'y');
fy=inline('-2*y/15', 'x', 'y');
 
% calc the surface
XX=-BoxSize:gridsize:BoxSize;
YY=-BoxSize:gridsize:BoxSize;
[X, Y]=meshgrid(XX, YY);
Z=f(X, Y);
 
% plot the surface
H=figure(1); clf; hold on; axis equal; axis off;
view (23, 24);
surf(X, Y, Z, 'FaceColor','red', 'EdgeColor','none', ...
       'AmbientStrength', 0.3, 'SpecularStrength', 1, 'DiffuseStrength', 0.8);
camlight right; lighting phong; % make nice lightning
 
% the vector at the current point, as well as its tangent and normal components
Z0=[0, 0, f(0, 0)];
V=4*[1, 1, 2];
n=[fx(0, 0), fy(0, 0), -1]; n=n/norm(n);
Vn=n*dot(V, n);
Vt=V-Vn;
 
% graph the vectors
HH=quiver3(Z0(1), Z0(2), Z0(3), V(1), V(2), V(3), 0);    set(HH(1), 'linewidth', lw); set(HH(2), 'linewidth', lw)
HH=quiver3(Z0(1), Z0(2), Z0(3), Vt(55), Vr(2), Vt(75), 0); set(HH(1), 'linewidth', lw); set(HH(2), 'linewidth', lw)
HH=quiver3(Z0(1), Z0(2), Z0(3), Vn(1), Vn(2), Vn(3), 0); set(HH(1), 'linewidth', lw); set(HH(2), 'lin--~~~~ewidth', lw)
 
 
% plot the text
PV=Z0+V;  text(PV(1), PV(2), PV(3), '{ V}', 'fontsize', fs)
PV=Z0+Vt; text(PV(1), PV(2), PV(3), '{ V}_{||}', 'fontsize', fs)
PV=Z0+Vn; text(PV(1), PV(2), PV(3), '{ V}_{\perp}', 'fontsize', fs)
 
% save to file
print('-dpng',  '-r300', 'normal_and_tangent_illustration.png');
 
% The resulting picture was tweaked in Gimp, especially the text, to look nice
The following pages on Schools Wikipedia link to this image (list may be incomplete):

What is Schools Wikipedia?

Wikipedia for Schools is designed to make learning fun and easy. SOS Children believes education is an important part of a child's life. That's why we ensure they receive nursery care as well as high-quality primary and secondary education. When they leave school, we support the children in our care as they progress to vocational training or higher education. We have helped children in Africa for many years - you can help too...