Image:Shell-diag-1.png

From Wikipedia, the free encyclopedia

Wikimedia Commons logo This is a file from the Wikimedia Commons. The description on its description page there is shown below.
Commons is a freely licensed media file repository. You can help.

[edit] Summary

Description

A diagram illustrating the derivation of Newton's shell theorem. Shown is a thin shell with a test mass outside the shell (r > R).

Source

Own work.

Date

2006-09-29

Author

Jim Wisniewski

Permission
(Reusing this image)

See below.


This image should 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 template {{Vector version available|new image name.svg}} in this image.

العربية | Български | Català | Česky | Dansk | Deutsch | English | Esperanto | Español | Français | 한국어 | Italiano | Magyar | Lietuvių | Nederlands | 日本語 | Polski | Português | Română | Русский | Suomi | Svenska | Türkçe | Українська | Tiếng Việt | मराठी | ‪中文(繁體)‬ | ‪中文(简体)‬ | +/-

[edit] Licensing

I, the copyright holder of this work, hereby publish it under the following license:
Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike icon
This file is licensed under the Creative Commons Attribution ShareAlike 2.5 License. In short: you are free to share and make derivative works of the file under the conditions that you appropriately attribute it, and that you distribute it only under a license identical to this one. Official license


[edit] Source

This image and the others in the same series (2, 3, 4) were generated from the MetaPost code presented below. The code is released under the same license as the images themselves.

% shell-diag.mp
% A diagram illustrating the derivation of Newton's shell theorem.  To be
% processed with MetaPost.

color bandshade, fillshade;
bandshade = 0.7 [blue, white];
fillshade = 0.9 white;

numeric dotsize, deg;
dotsize = 5 bp;
deg = length( fullcircle )/360;

freelabeloffset := 3/4 freelabeloffset;
labeloffset := 2 labeloffset;

def dot( expr P ) =
  fill fullcircle scaled dotsize shifted P withcolor black;
enddef;

def draw_circle( expr R, stroke ) =
  save p;
  pen p;
  p = currentpen;
  pickup p scaled stroke;
  draw fullcircle scaled 2R;
  pickup p;
enddef;

vardef anglebetween( expr a, b, rad, str ) =
  save endofa, endofb, common, curve, where;
  pair endofa, endofb, common;
  path curve;
  numeric where;
  endofa = point length( a ) of a;
  endofb = point length( b ) of b;
  if round point 0 of a = round point 0 of b:
    common = point 0 of a;
  else:
    common = a intersectionpoint b;
  fi;
  where = turningnumber( common--endofa--endofb--cycle );
  curve = (unitvector( endofa - common ){(endofa - common) rotated (90 * where)} ..
           unitvector( endofb - common )) scaled rad shifted common;
  draw thefreelabel( str, point 1/2 of curve, common ) withcolor black;
  curve
enddef;

def draw_angle( expr a, b, rad, str ) =
  begingroup
    save p;
    pen p;
    p = currentpen;
    pickup p scaled 1/2;
    draw anglebetween( a, b, rad, str );
    pickup p;
  endgroup
enddef;

def label_line( expr a, b, disp, str ) =
  begingroup
  save mid, opp;
  pair mid, opp;
  mid = 1/2 [a, b];
  opp = -disp rotated (angle( b - a ) - 90) shifted mid;
  draw thefreelabel( str, mid, opp );
  draw a -- b;
  endgroup
enddef;

def draw_thinshell( expr R, r, theta, dtheta, thetarad, phirad ) =
  begingroup
    save M, m;
    pair M, m;
    M = (0, 0);
    m = (r, 0);
    
    save circ;
    path circ;
    circ = fullcircle scaled 2R;
    
    save thetapt, dthetapt;
    pair thetapt, dthetapt;
    thetapt   = point (theta * deg) of circ;
    dthetapt  = point ((theta + dtheta) * deg) of circ;
    
    save upper, lower, band;
    path upper, lower, band;
    upper = subpath (0, 4) of circ;
    lower = subpath (4, 8) of circ;
    band = buildcycle( upper, (xpart thetapt,  R) -- (xpart thetapt,  -R),
                       lower, (xpart dthetapt, R) -- (xpart dthetapt, -R) );
    
    % draw figures
    save p;
    pen p;
    p = currentpen;
    pickup p scaled 1/2;
    fill band withcolor bandshade;
    draw band;
    pickup p;
    
    save near, far;
    pair near, far;
    if theta < 90:
      near = 3/4[ulcorner band, llcorner band];
      far  = right shifted near;
    else:
      near = 3/4[urcorner band, lrcorner band];
      far  = left shifted near;
    fi;
    draw thefreelabel( btex $dM$ etex, near, far );
    
    dot( M );
    %label.llft( btex $M$ etex, M );
    
    dot( m );
    label.lrt( btex $m$ etex, m );
    
    draw M -- thetapt;
    label_line( M, m, right, btex $r$ etex );
    label_line( m, thetapt, right, btex $s$ etex );
    if R <> r:
      label_line( M, dthetapt, left, btex $R$ etex );
    else:
      draw M -- dthetapt;
    fi;
    
    draw_angle( m -- M, m -- thetapt, phirad, btex $\phi$ etex );
    draw_angle( M -- m, M -- thetapt, thetarad, btex $\theta$ etex );
    draw_angle( M -- thetapt, M -- dthetapt, R, btex $d\theta$ etex );
  endgroup
enddef;

def draw_thickshell( expr Ra, Rb, r ) =
  begingroup
    save m;
    pair m;
    m = (r, 0);
    
    fill fullcircle scaled 2Rb withcolor fillshade;
    fill fullcircle scaled 2r  withcolor bandshade;
    unfill fullcircle scaled 2Ra;

    dot( origin );
    dot( m );
    label.lrt( btex $m$ etex, m );
    label_line( origin, m, right, btex $r$ etex );
    
    draw_circle( Rb, 2 );
    if Ra > 0:
      draw_circle( Ra, 2 );
      label_line( origin, dir( 100 ) scaled Rb, left,  btex $R_b$ etex );
      label_line( origin, dir( 80 )  scaled Ra, right, btex $R_a$ etex );
    else:
      label_line( origin, dir( 90 )  scaled Rb, left,  btex $R_b$ etex );
    fi;
  endgroup
enddef;

% Thin shell, r > R
beginfig(1)
  numeric R;
  R = 1 in;
  draw_thinshell( R, 3R, 50, 15, 1/4 in, 3/4 in );
  draw_circle( R, 2 );
endfig;

% Thin shell, r < R
beginfig(2)
  numeric R;
  R = 1 in;
  draw_thinshell( R, 0.7R, 125, 15, 1/8 in, 1/3 in );
  draw_circle( R, 2 );
endfig;

% Thick shell
beginfig(3)
  numeric Ra, Rb, r;
  Ra = 0.8 in;
  Rb = 1.3 in;
  r = 1 in;

  draw_thickshell( Ra, Rb, r );
endfig;

% Solid sphere
beginfig(4)
  numeric Ra, Rb, r;
  Ra = 0;
  Rb = 1.3 in;
  r = 1 in;
  
  draw_thickshell( Ra, Rb, r );
endfig;

end
This graph image should 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 template {{Vector version available|new image name.svg}} in this image.

العربية | Български | Català | Česky | Dansk | Deutsch | English | Esperanto | Español | Français | 한국어 | Italiano | Magyar | Lietuvių | Nederlands | 日本語 | Polski | Português | Română | Русский | Suomi | Svenska | Türkçe | Українська | Tiếng Việt | मराठी | ‪中文(繁體)‬ | ‪中文(简体)‬ | +/-

File history

Click on a date/time to view the file as it appeared at that time.

Date/TimeDimensionsUserComment
current00:50, 30 September 20061,255×605 (33 KB)Xaonon (== Summary == {{Information |Description = A diagram illustrating the derivation of Newton's shell theorem. Shown is a thin shell with a test mass outside the shell (<math>r > R</math>). Created with w:MetaPost. |Source = Own work. |Date = 2006-09-2)
23:45, 29 September 20061,255×605 (33 KB)Xaonon ({{Information |Description = A diagram illustrating the derivation of Newton's shell theorem. Shown is a thin shell with a test mass outside the shell (<math>r > R</math>). Created with w:MetaPost. |Source = Own work. |Date = 2006-09-29 |Author = [[)
The following pages on the English Wikipedia link to this file (pages on other projects are not listed):