More problem cleanups (mostly labeling).
authorW. Trevor King <wking@drexel.edu>
Thu, 12 Apr 2012 07:21:11 +0000 (03:21 -0400)
committerW. Trevor King <wking@drexel.edu>
Thu, 12 Apr 2012 07:21:11 +0000 (03:21 -0400)
I've checked through most of the figures, and I haven't seen any
obvious mistakes.  There are still a few problems in Serway & Jewett
v4 that need to be upgraded from MetaPost to Asymptote, though.

34 files changed:
latex/problems/Giancoli_6/problem19.31.tex
latex/problems/Giancoli_6/problem19.58.tex
latex/problems/Serway_and_Jewett_4/equation27.07.tex
latex/problems/Serway_and_Jewett_4/problem12.18.tex
latex/problems/Serway_and_Jewett_4/problem13.40.tex
latex/problems/Serway_and_Jewett_4/problem14.08.tex
latex/problems/Serway_and_Jewett_4/problem14.20.tex
latex/problems/Serway_and_Jewett_4/problem19.07.tex
latex/problems/Serway_and_Jewett_4/problem19.11.tex
latex/problems/Serway_and_Jewett_4_venkat/problem12.V2.tex
latex/problems/Serway_and_Jewett_4_wking/problem12.06.T.tex
latex/problems/Serway_and_Jewett_4_wking/problem12.47.T.tex
latex/problems/Serway_and_Jewett_4_wking/problem24.57.T.tex
latex/problems/Serway_and_Jewett_4_wking/question09.11.T.tex
latex/problems/Serway_and_Jewett_8/problem02.11.tex
latex/problems/Serway_and_Jewett_8/problem03.24.tex
latex/problems/Serway_and_Jewett_8/problem03.28.tex
latex/problems/Serway_and_Jewett_8/problem05.25.tex
latex/problems/Serway_and_Jewett_8/problem05.30.tex
latex/problems/Serway_and_Jewett_8/problem05.47.tex
latex/problems/Serway_and_Jewett_8/problem06.08.tex
latex/problems/Serway_and_Jewett_8/problem06.11.tex
latex/problems/Serway_and_Jewett_8/problem23.10.tex
latex/problems/Serway_and_Jewett_8/problem23.11.tex
latex/problems/Serway_and_Jewett_8/problem29.03.tex
latex/problems/Serway_and_Jewett_8/problem29.22.tex
latex/problems/Serway_and_Jewett_8/problem30.61.tex
latex/problems/Young_and_Freedman_12/problem21.84.tex
latex/problems/Young_and_Freedman_12/problem21.86.tex
latex/problems/Young_and_Freedman_12/problem23.25.tex
latex/problems/Young_and_Freedman_12/problem27.39.tex
latex/problems/Young_and_Freedman_12/problem27.73.tex
latex/problems/Young_and_Freedman_12/problem28.12.tex
latex/problems/wking/problem.sprung-pendulum.tex

index d9636f279299e4110b83149b51568c7702232299..5a6024baf724c9e0c6867798ef5008fc23664373 100644 (file)
@@ -27,7 +27,7 @@ wire(Jbot, Rcb.end, rlsq);
 \begin{center}
 \begin{asy}
 import Circ;
-TwoTerminal Bc = source((0,0), DC, 90, "", "$3.0\U{V}$");
+TwoTerminal Bc = source((0,0), ang=90, type=DC, "", "$3.0\U{V}$");
 TwoTerminal Rcb = resistor(Bc.beg, ang=-90, "$10\U{\Ohm}$", "");
 TwoTerminal Rca = resistor(Bc.end, ang=180, "", "$2\U{\Ohm}$");
 pair Jtop = Rca.end, Jbot = (Jtop.x,Rcb.end.y);
index 437ca5c8fb7fac0e3bc05143ded73a725b80071f..6a3ec24ad04a2479451045f8c0c7161927300ce5 100644 (file)
@@ -13,12 +13,12 @@ The original situation looks like
 \begin{asy}
 import Circ;
 real u = 0.5cm;
-TwoTerminal B = source((0,0), DC, 90, "$45\U{V}$", "$V$");
+TwoTerminal B = source((0,0), ang=90, type=DC, "$45\U{V}$", "$V$");
 pair a = B.end+(0,u);
 pair b = B.beg-(0,u);
-TwoTerminal Ra = resistor(a, normal, 0, "$38\U{k\Ohm}$", "$R_1$");
-TwoTerminal Rb = resistor(Ra.end, normal, 0, "$27\U{k\Ohm}$", "$R_2$");
-TwoTerminal I = current((Rb.end.x, (a.y+b.y)/2), -90, "", "$I$");
+TwoTerminal Ra = resistor(a, "$38\U{k\Ohm}$", "$R_1$");
+TwoTerminal Rb = resistor(Ra.end, "$27\U{k\Ohm}$", "$R_2$");
+TwoTerminal I = current((Rb.end.x, (a.y+b.y)/2), ang=-90, "", "$I$");
 wire(Rb.end, I.beg, nsq);
 wire(I.end, b, udsq);
 wire(b, B.beg, nsq);
@@ -42,15 +42,15 @@ With the voltmeter across $R_1$ we have
 \begin{asy}
 import Circ;
 real u = 0.5cm;
-TwoTerminal B = source((0,0), DC, 90, "$45\U{V}$", "$V$");
+TwoTerminal B = source((0,0), ang=90, type=DC, "$45\U{V}$", "$V$");
 pair a = B.end+(0,u);
 pair b = B.beg-(0,u);
-TwoTerminal Ra = resistor(a, normal, 0, "$38\U{k\Ohm}$", "$R_1$");
-TwoTerminal Ia = current(Ra.end, 0, "", "$I_1$");
-TwoTerminal Rv = resistor(a+(0,4u), normal, 0, "$95\U{k\Ohm}$", "$R_v$");
-TwoTerminal Iv = current(Rv.end, 0, "", "$I_v$");
-TwoTerminal Rb = resistor(Ia.end, normal, 0, "$27\U{k\Ohm}$", "$R_2$");
-TwoTerminal I = current((Rb.end.x, (a.y+b.y)/2), -90, "", "$I_T$");
+TwoTerminal Ra = resistor(a, "$38\U{k\Ohm}$", "$R_1$");
+TwoTerminal Ia = current(Ra.end, "", "$I_1$");
+TwoTerminal Rv = resistor(a+(0,4u), "$95\U{k\Ohm}$", "$R_v$");
+TwoTerminal Iv = current(Rv.end, "", "$I_v$");
+TwoTerminal Rb = resistor(Ia.end, "$27\U{k\Ohm}$", "$R_2$");
+TwoTerminal I = current((Rb.end.x, (a.y+b.y)/2), ang=-90, "", "$I_T$");
 wire(Rb.end, I.beg, nsq);
 wire(I.end, b, udsq);
 wire(b, B.beg, nsq);
index e0e40e7537474b13c1f9b4cd5c465eea8b33348a..dd242eac8190f4c1b5dea3febf9c0d40176d135f 100644 (file)
@@ -37,7 +37,7 @@ real E = 1;
 pair P = (0,0);
 
 Vector Et = EField(t*P, u*E, 0, L="$E_t$");
-Vector Eb = EField(t*P, u*E, 140, L="$E_b$");
+Vector Eb = EField(t*P, u*E, 140, L=Label("$E_b$", align=LeftSide));
 Angle a = Angle(Et.pTip(), Et.center, Eb.pTip(), Et.mag/2, L="$\Delta \phi$");
 
 Et.draw();
index fb64459d5914d4b1ad0d87ade9a23259e044d30a..a5f1f10ddee88040abbe77b0faabcd5edb87453a 100644 (file)
@@ -25,7 +25,7 @@ real a = u/2;
 Surface surf = Surface(pFrom=(-.7u,-a/2), pTo=(2u,-a/2));
 Block b = Block(center=(0,0), width=a);
 Spring spring = Spring(pFrom=(b.center+(a/2,0)), pTo=(2u,0));
-Vector Fspring = Force(b.center, mag=2a, dir=0, L="$F_s$");
+Vector Fspring = Force(b.center, mag=2a, dir=0, L=Label("$F_s$", align=N));
 Vector Fexternal = Force(b.center, mag=2a, dir=180, L="$F_e$");
 
 Fspring.draw();
index da74b433a6f35f47b13bf85855343387b13c9de7..26b1757e310b273c7e01b0fbbb24be4da145408b 100644 (file)
@@ -28,11 +28,7 @@ draw(scale(u)*unitcircle, dotted);
 pair source = u*dir(theta/2);
 pair target = u*dir(-theta/2);
 
-Angle a = Angle(source, (0,0), (source+target)/2, radius=1cm, L=" $\theta/2$");
-// space before text in the label because inline-asymptote doesn't know 
-// how big the label will be when it sets the positions.  See
-//   http://asymptote.sourceforge.net/doc/LaTeX-usage.html
-// So we add some space by hand.
+Angle a = Angle(source, (0,0), (source+target)/2, L="$\theta/2$");
 a.draw();
 draw(target--(0,0)--source);
 draw((0,0)--((source+target)/2));
index 3708d0ce615b9ef03364a66c0eaa4db15db1dbe1..325a26f7a6ed6de24883512c0e6350644cf6af55 100644 (file)
@@ -18,19 +18,18 @@ pair SpeakerA = (0,0);
 pair SpeakerB = (0,2u);
 pair Listener = (3u,0);
 
-// Extra label text for spacing with inline asymptote
-Distance dAB = Distance(SpeakerA, SpeakerB, Label("$L=2\U{m}$", "L=2 m"));
-Distance dAL = Distance(Listener, SpeakerA, Label("$d_a=3\U{m}$", "da=3 m"));
-Distance dBL = Distance(SpeakerB,Listener,
-                        Label("$\qquad\qquad\qquad\qquad\qquad d_b=\sqrt{L^2+d_a^2}=3.606\U{m}$",
-                              "$d_b=\sqrt{L^2+d_a^2}=3.606mm$"));
+Distance dAB = Distance(SpeakerA, SpeakerB, L=Label("$L=2\U{m}$", align=W));
+Distance dAL = Distance(SpeakerA, Listener,
+    L=Label("$d_a=3\U{m}$", position=Relative(0.4), align=S));
+Distance dBL = Distance(SpeakerB, Listener,
+    Label("$d_b=\sqrt{L^2+d_a^2}=3.606\U{m}$", align=NE));
 
 dot(SpeakerA);
-label("$S_a$", SpeakerA, W);
+label("$S_a$", SpeakerA, align=SW);
 dot(SpeakerB);
-label("$S_b$", SpeakerB, W);
+label("$S_b$", SpeakerB, align=NW);
 dot(Listener);
-label("Listener", Listener, E);
+label("Listener", Listener, align=S);
 dAB.draw();
 dAL.draw();
 dBL.draw();
index b1a4e09faef061092c5c98b15244929be16beccb..cbeb4abd2dd7588ef35c905d8a04178141d1c4a1 100644 (file)
@@ -31,7 +31,8 @@ for (i=0; i<=n; ++i) {
 
 Block vib = Block((-w/2,0), width=w, height=w/3, L="vibrator");
 Block obj = Block((L+(1+cos(pi/4))*A, -L/3), width=vib.height, L="$m$");
-Distance dL = Distance((0,vib.height/2), (L,vib.height/2), L=Label("$L$", N));
+Distance dL = Distance((0,vib.height/2), (L,vib.height/2),
+    L=Label("$L$", align=LeftSide));
 
 draw(p, blue);
 draw(yscale(-1)*p, blue+dotted);
index c36bacb18f71eacab1dec658dc34a51dde240633..7d69dea832dfa3c61aa69fe24b737c9733a185fe 100644 (file)
@@ -22,14 +22,9 @@ real qb = -18e-9;
 Charge a = aCharge((0,0)*u, q=qa, L="$q_1$");
 Charge b = aCharge((0.03,0)*u, q=qb, L="$q_2$");
 Distance r = Distance(a.center(), b.center(), L="$r$");
-Vector Fab = CoulombForce(a, b, scale=Fscale, L="$F$");
-Vector Fba = CoulombForce(b, a, scale=Fscale, L="$F$");
-Fab.mag /= 10.0; // Not part of Fscale b/c of rounding
-Fba.mag /= 10.0;
-
+Charge cs[] = {a, b};
+CoulombForces(c=cs, scale=b.center().x, unit=2cm/abs(qa*qb));
 r.draw();
-Fab.draw();
-Fba.draw();
 a.draw();
 b.draw();
 \end{asy}
@@ -53,15 +48,12 @@ real Fscale = 5e9cm; // Length of 1 N on the page
 real qa = 12e-9;
 real qb = -18e-9;
 
-Charge a = aCharge((0,0)*u, q=(qa+qb)/2, L="$Q/2$");
-Charge b = aCharge((0.03,0)*u, q=(qa+qb)/2, L="$Q/2$");
+Charge a = aCharge((0,0)*u, q=(qa+qb)/2, L=Label("$Q/2$", align=N));
+Charge b = aCharge((0.03,0)*u, q=(qa+qb)/2, L=Label("$Q/2$", align=S));
 Distance r = Distance(a.center(), b.center(), L="$r$");
-Vector Fab = CoulombForce(a, b, scale=Fscale, L="$F$");
-Vector Fba = CoulombForce(b, a, scale=Fscale, L="$F$");
-
+Charge cs[] = {a, b};
+CoulombForces(c=cs, scale=b.center().x, unit=3cm/(qa+qb)^2);
 r.draw();
-Fab.draw();
-Fba.draw();
 a.draw();
 b.draw();
 \end{asy}
index 52473bf79fa920b743b719008ad35a2caed6fa5e..e22e6982756d26f124ff6773a62263ba810b6cb7 100644 (file)
@@ -13,7 +13,7 @@ real u = 2cm;
 draw_ijhat();
 Charge a = aCharge(q=-2.5, "$q_1$");  a.draw();
 Charge b = aCharge(q=6.0, (1u, 0), "$q_2$");  b.draw();
-Distance dab = Distance(a.center(), b.center(), offset=12pt, L="$1\U{m}$");
+Distance dab = Distance(a.center(), b.center(), offset=24pt, L="$1\U{m}$");
 dab.draw();
 \end{asy}
 \end{center}
@@ -28,11 +28,11 @@ real u = 2cm;
 draw_ijhat();
 Charge a = aCharge(q=-2.5, "$q_1$");  a.draw();
 Charge b = aCharge(q=6.0, (1u, 0), "$q_2$");  b.draw();
-Distance dab = Distance(a.center(), b.center(), offset=12pt, L="$1\U{m}$");
+Distance dab = Distance(a.center(), b.center(), offset=24pt, L="$1\U{m}$");
 dab.draw();
 pair c = (-1.82u, 0);
-Distance dac = Distance(c, a.center(), offset=24pt, L="$r_1$");  dac.draw();
-Distance dbc = Distance(c, b.center(), offset=36pt, L="$r_2$");  dbc.draw();
+Distance dac = Distance(c, a.center(), offset=36pt, L="$r_1$");  dac.draw();
+Distance dbc = Distance(c, b.center(), offset=48pt, L="$r_2$");  dbc.draw();
 Charge cs[] = {a, b};
 CoulombEFields(c, cs, scale=u, unit=u);
 dot(c);
index b65b070fa42def47fda0f506b6e559c57eb426b9..511973013777b1cc736e4402d7056f4ec2683919 100644 (file)
@@ -150,9 +150,11 @@ real A = sqrt(x**2 + (v/w)**2);
 pair p = (x*u, -v/w*u);
 real r = A*u;
 
-Vector xaxis = Vector((-1.4r,0), mag=2.8r, dir=0, gray(0.6), "$x$");
+Vector xaxis = Vector((-1.4r,0), mag=2.8r, dir=0, gray(0.6),
+    L=Label("$x$", position=EndPoint, align=RightSide));
 xaxis.draw();
-Vector yaxis = Vector((0,1.4r), mag=2.8r, dir=-90, gray(0.6), "$v/\omega$");
+Vector yaxis = Vector((0,1.4r), mag=2.8r, dir=-90, gray(0.6),
+    L=Label("$v/\omega$", position=EndPoint, align=RightSide));
 yaxis.draw();
 draw(scale(r)*unitcircle);
 
index 0a7e5257e5da48b74634dfbc70fd7171d34c365b..3c3ac99aac0c81f0c24e5c50aa6e551f8d6c03a0 100644 (file)
@@ -17,12 +17,15 @@ real u = 1cm;
 
 real a=6.4; // degrees
 real force=2u; // magnitude
-Pendulum p = makePendulum(angleDeg=a, length=2u, stringL="$L$");
+Pendulum p = makePendulum(angleDeg=a, length=2u,
+    stringL=Label("$L$", align=E, embed=Shift));
 p.mass.lc.radius = 0;
-Vector fg = Force(p.mass.center()/2, dir=-90, mag=force, L="$F_g$");
+Vector fg = Force(p.mass.center()/2, dir=-90, mag=force,
+    L=Label("$F_g$", position=EndPoint, align=W));
 Vector fgtan = Force(p.mass.center()/2, dir=a-180, mag=force*sin(a),
-    L=Label("$F_{\tan}$"));
-Vector v = Velocity(p.mass.center(), dir=a, mag=0.5u, L="$v$");
+    L=Label("$F_{\tan}$", position=EndPoint, align=W));
+Vector v = Velocity(p.mass.center(), dir=a, mag=0.5u,
+    L=Label("$v$", position=EndPoint, align=S));
 
 fg.draw();
 fgtan.draw();
index cd093418182eefb23e553e847075e4bec3239538..dd8636ca395dfee580220620c863e67c0e24138c 100644 (file)
@@ -32,11 +32,13 @@ import Mechanics;
 real u = 1cm;
 
 Pendulum p = makePendulum(angleDeg=25, length=2u,
-                          angleL="$\theta$", stringL="$r$");
+    angleL="$\theta$", stringL=Label("$r$", embed=Shift));
 Spring s = Spring(pFrom=p.mass.center(), pTo=p.mass.center()+2u,
-                  unstretchedLength=2u, L="$k$");
-Vector fs = Force(p.mass.center(), dir=180, mag=5mm, L="$F_s$");
-Vector fg = Force(p.mass.center(), dir=-90, mag=7mm, L="$F_g$");
+    unstretchedLength=2u, L="$k$");
+Vector fs = Force(p.mass.center(), dir=180, mag=5mm,
+    L=Label("$F_s$", position=EndPoint, align=W));
+Vector fg = Force(p.mass.center(), dir=-90, mag=7mm,
+    L=Label("$F_g$", position=EndPoint, align=W));
 
 s.draw();
 fs.draw();
index 535f3b97a110c607a1aea6d719cc29c25dfe1ed2..48e96b7634408bd2988b2afeac73137caf4602e0 100644 (file)
@@ -52,7 +52,8 @@ real L = v/f;   // m, wavelength
 real xstart = 8r;
 real mag = 16r;
 
-Vector x = Vector(center=(xstart*u,0), mag=mag*u, dir=180, L="signal");
+Vector x = Vector(center=(xstart*u,0), mag=mag*u, dir=180,
+    L=Label("signal", position=EndPoint, align=N));
 path a = scale(r*u)*unitcircle; // antenna
 
 draw(a);
index 6e91c69bb2fa1df006f6760e32946a2f18664198..d501ffd7e9c7559abce651ec69ec22bf9b2da317 100644 (file)
@@ -9,7 +9,7 @@ real u = .5cm;
 Spring Su = Spring(pFrom=(0,0), pTo=(4u,0), k=500, L=Label("$m$", N));
 Spring Sc = Spring(pFrom=(0,-2u), pTo=(3u,-2u), k=500, L=Label("$m'$", N));
 Distance d = Distance(pFrom=(4u,-2u), pTo=(3u,-2u), scale=u,
-    L=rotate(90)*Label("$1\U{cm}$", S));
+    L=rotate(90)*Label("$1\U{cm}$", align=S));
 Su.draw();
 Sc.draw();
 d.draw();
index fe2c3fba9fa338bdf6666ad73f495ce3657f4e61..baf2c938027cfe14b6e809f536e30057db0548ca 100644 (file)
@@ -36,14 +36,18 @@ pair h2 = (p, T-(L-p)/vh);  // hare restart event
 dot((0,0));  // start
 dot(f);      // finish
 
-Vector T1 = Vector((0,0), mag=length(f), dir=degrees(f), "tortoise");
+Vector T1 = Vector((0,0), mag=length(f), dir=degrees(f),
+    L=Label("tortoise"));
 T1.draw();
 
-Vector H1 = Vector((0,0), mag=length(h1), dir=degrees(h1), "hare");
+Vector H1 = Vector((0,0), mag=length(h1), dir=degrees(h1),
+    L=Label("hare", align=S));
 H1.draw();
-Vector H2 = Vector(h1, mag=length(h2-h1), dir=degrees(h2-h1), "pause");
+Vector H2 = Vector(h1, mag=length(h2-h1), dir=degrees(h2-h1),
+    L=Label("pause", align=E));
 H2.draw();
-Vector H3 = Vector(h2, mag=length(f-h2), dir=degrees(f-h2), "hare");
+Vector H3 = Vector(h2, mag=length(f-h2), dir=degrees(f-h2),
+    L=Label("hare", align=N));
 H3.draw();
 
 xaxis("$x$");
index 46df154ec5dfc84d02b3865439c492274b90799f..acca8de047e862bfeb31be99ddc6efb25dfc8829 100644 (file)
@@ -18,11 +18,14 @@ real u = 0.25cm;
 
 pair a = (2u, 6u);
 pair b = (3u, -2u);
-Vector A = Vector((0,0), mag=length(a), dir=degrees(a), "$\vect{A}$");
+Vector A = Vector((0,0), mag=length(a), dir=degrees(a),
+    L=Label("$\vect{A}$", align=W));
 A.draw();
-Vector B = Vector(a, mag=length(b), dir=degrees(b), "$\vect{B}$");
+Vector B = Vector(a, mag=length(b), dir=degrees(b),
+    L=Label("$\vect{B}$", align=N));
 B.draw();
-Vector C = Vector((0,0), mag=length(a+b), dir=degrees(a+b), "$\vect{C}$");
+Vector C = A + B;
+C.label = Label("$\vect{C}$", align=SE);
 C.draw();
 \end{asy}
 \hspace{1cm}
@@ -33,11 +36,14 @@ real u = 0.25cm;
 
 pair a = (2u, 6u);
 pair b = (3u, -2u);
-Vector A = Vector((0,0), mag=length(a), dir=degrees(a), "$\vect{A}$");
+Vector A = Vector((0,0), mag=length(a), dir=degrees(a),
+    L=Label("$\vect{A}$", align=E));
 A.draw();
-Vector B = Vector(a-b, mag=length(b), dir=degrees(b), "$\vect{B}$");
+Vector B = Vector(a-b, mag=length(b), dir=degrees(b),
+    L=Label("$\vect{B}$", align=N));
 B.draw();
-Vector D = Vector((0,0), mag=length(a-b), dir=degrees(a-b), "$\vect{D}$");
+Vector D = A - B;
+D.label = Label("$\vect{D}$", align=W);
 D.draw();
 \end{asy}
 \end{center}
@@ -88,11 +94,13 @@ pair D = -d;
 
 Angle a = Angle((1,0), (0,0), d, red, "$-82.9\dg$");
 a.draw();
-Vector vd = Vector((0,0), mag=length(d), dir=degrees(d), "$(1,-8)$");
+Vector vd = Vector((0,0), mag=length(d), dir=degrees(d),
+    L=Label("$(1,-8)$", position=EndPoint, align=W));
 vd.draw();
 Angle A = Angle((1,0), (0,0), D, blue, "$97.1\dg$");
 A.draw();
-Vector vD = Vector((0,0), mag=length(D), dir=degrees(D), "$(-1,8)$");
+Vector vD = Vector((0,0), mag=length(D), dir=degrees(D),
+    L=Label("$(-1,8)$", position=EndPoint, align=W));
 vD.draw();
 Angle r = Angle(d, (0, 0), D, radius=15mm, green, "$180.0\dg$");
 r.draw();
index d061906e8f2c51b3984e524057592f4a35eaab3a..ac7603eae9634aa6ddf2554441ac2f787f8ffe71 100644 (file)
@@ -25,7 +25,8 @@ draw((0,-5u)--(0, 20u), dashed);  // line of scrimmage
 Vector vDrop = Vector((0,0), mag=length(drop), dir=degrees(drop), "drop");
 vDrop.draw();
 Vector vScramble = Vector(
-    drop, mag=length(scramble), dir=degrees(scramble), "scramble");
+    drop, mag=length(scramble), dir=degrees(scramble),
+    L=Label("scramble", align=W));
 vScramble.draw();
 Vector vPass = Vector(drop+scramble, mag=length(pass), dir=degrees(pass),
     "pass");
index d1fbf9293aaaf44ccec341a69f458579f31a3977..259026cbcbc5859edad4d73e5e1a0095083944ec 100644 (file)
@@ -66,7 +66,8 @@ Angle A1 = Angle(dir(180-theta1), (0,0), dir(180+theta2), radius=10mm,
 Angle A3 = Angle((0,-1), (0,0), dir(-90+theta2), "$\theta_2$");
 
 Vector F1 = Force((0,0), mag=T1, dir=180-theta1, "$\vect{F}_1$");
-Vector F2 = Force((0,0), mag=T2, dir=theta2, "$\vect{F}_2$");
+Vector F2 = Force((0,0), mag=T2, dir=theta2,
+    L=Label("$\vect{F}_2$", position=EndPoint, align=N));
 Vector F3 = Force((0,0), mag=T3, dir=-90, "$\vect{F}_3$");
 
 a1.draw();
index 4f8afa0a50e745159d37cb69a7ed747bdea36410..780433c56113cc17a6de81019ab93360ad266f8c 100644 (file)
@@ -71,9 +71,11 @@ real m1 = 2;
 real m2 = 6;
 real t = g*m1*m2/(m1+m2)*(1+Sin(theta));
 
-Vector T = Force((0,0), mag=t, dir=90, "$T$");
+Vector T = Force((0,0), mag=t, dir=90,
+    L=Label("$T$", position=EndPoint, align=E));
 T.draw();
-Vector G = Force((0,0), mag=m1*g, dir=-90, "$m_1 g$");
+Vector G = Force((0,0), mag=m1*g, dir=-90,
+    L=Label("$m_1 g$", position=EndPoint, align=E));
 G.draw();
 dot("$m_1$", (0,0), W);
 \end{asy}
@@ -88,11 +90,14 @@ real m1 = 2;
 real m2 = 6;
 real t = g*m1*m2/(m1+m2)*(1+Sin(theta));
 
-Vector T = Force((0,0), mag=t, dir=180-theta, "$T$");
+Vector T = Force((0,0), mag=t, dir=180-theta,
+    L=Label("$T$", position=EndPoint, align=NE));
 T.draw();
-Vector N = Force((0,0), mag=m2*g*Cos(theta), dir=90-theta, "$N$");
+Vector N = Force((0,0), mag=m2*g*Cos(theta), dir=90-theta,
+    L=Label("$N$", position=EndPoint, align=E));
 N.draw();
-Vector G = Force((0,0), mag=m2*g, dir=-90, "$m_2 g$");
+Vector G = Force((0,0), mag=m2*g, dir=-90,
+    L=Label("$m_2 g$", position=EndPoint, align=E));
 G.draw();
 dot("$m_2$", (0,0), SE);
 \end{asy}
index d6c214706fd986c4d5433c97d4b2b103418c0910..8a0c51bc7ef4cc1dfd0e7a98ab333257b4319ba9 100644 (file)
@@ -44,10 +44,14 @@ real m2 = 18;
 real mu = 0.1;
 real t = f*m1/(m1+m2);
 
-Vector G = Force((0,0), mag=m1*g*vscale, dir=-90, "$m_1g$");
-Vector N = Force((0,0), mag=m1*g*vscale, dir=90, "$\vect{N}_1$");
-Vector T = Force((0,0), mag=t, dir=0, "$T$");
-Vector F = Force((0,0), mag=mu*m1*g, dir=180, "$\vect{F}_{f1}$");
+Vector G = Force((0,0), mag=m1*g*vscale, dir=-90,
+    L=Label("$m_1g$", position=EndPoint, align=S));
+Vector N = Force((0,0), mag=m1*g*vscale, dir=90,
+    L=Label("$\vect{N}_1$", position=EndPoint, align=NE));
+Vector T = Force((0,0), mag=t, dir=0,
+    L=Label("$T$", position=EndPoint, align=NE));
+Vector F = Force((0,0), mag=mu*m1*g, dir=180,
+    L=Label("$\vect{F}_{f1}$", position=EndPoint, align=W));
 
 G.draw();
 N.draw();
@@ -69,11 +73,16 @@ real mu = 0.1;
 real t = f*m1/(m1+m2);
 real dy=1mm;
 
-Vector G = Force((0,0), mag=m2*g*vscale, dir=-90, "$m_2g$");
-Vector N = Force((0,0), mag=m2*g*vscale, dir=90, "$\vect{N}_2$");
-Vector E = Force((0,0), mag=f, dir=0, "$\vect{F}$");
-Vector T = Force((0,dy), mag=t, dir=180, "$T$");
-Vector F = Force((0,-dy), mag=mu*m2*g, dir=180, "$\vect{F}_{f2}$");
+Vector G = Force((0,0), mag=m2*g*vscale, dir=-90,
+    L=Label("$m_2g$", position=EndPoint, align=S));
+Vector N = Force((0,0), mag=m2*g*vscale, dir=90,
+    L=Label("$\vect{N}_2$", position=EndPoint, align=NE));
+Vector E = Force((0,0), mag=f, dir=0,
+    L=Label("$\vect{F}$", position=EndPoint, align=NE));
+Vector T = Force((0,dy), mag=t, dir=180,
+    L=Label("$T$", position=EndPoint, align=NW));
+Vector F = Force((0,-dy), mag=mu*m2*g, dir=180,
+    L=Label("$\vect{F}_{f2}$", position=EndPoint, align=SW));
 
 G.draw();
 N.draw();
index 42c3117099743ee436269c13817e2da8af54e681..7c25938adc3ddd6729c4990f34ce4d0fd3871dff 100644 (file)
@@ -33,7 +33,8 @@ real mg = 1.3u;
 draw((0,0)--(0, mg));
 Angle t = Angle(dir(90), (0,0), dir(90+theta), "$\theta$");
 t.draw();
-Vector T = Force((0,0), mag=mg/Cos(theta), dir=(90+theta), "$T$");
+Vector T = Force((0,0), mag=mg/Cos(theta), dir=(90+theta),
+    L=Label("$T$", align=SW));
 T.draw();
 Vector G = Force((0,0), mag=mg, dir=(-90), "$mg$");
 G.draw();
index 5fa65c6d414c11311e9fa72f4bb2d4477527f7f8..062639bc28e57cabfec09a039f4b80a468215e22 100644 (file)
@@ -15,7 +15,7 @@ import Mechanics;
 real u = 1cm;
 
 Mass m = Mass((u,0), "$m$");
-Vector F = Force(m.center(), mag=0.7u, dir=180, "$F_f$");
+Vector F = Force(m.center(), mag=0.7u, dir=180, L=Label("$F_f$", align=SW));
 
 draw(scale(u)*unitcircle);
 Distance r = Distance((0,0), u*dir(45), "$r$");
@@ -37,11 +37,12 @@ real u = 1cm;
 real theta = 25;
 real mg = 1.3u;
 
-Vector F = Force((0,0), mag=0.7u, dir=180, "$F_f$");
+Vector F = Force((0,0), mag=0.7u, dir=180,
+    L=Label("$F_f$", position=EndPoint));
 F.draw();
-Vector G = Force((0,0), mag=1u, dir=-90, "$mg$");
+Vector G = Force((0,0), mag=1u, dir=-90, L=Label("$mg$", position=EndPoint));
 G.draw();
-Vector N = Force((0,0), mag=1u, dir=90, "$N$");
+Vector N = Force((0,0), mag=1u, dir=90, L=Label("$N$", position=EndPoint));
 N.draw();
 dot((0,0));
 
index dc6e5ed6bdb46285e0339103020ba8ac13427ce2..808ac0240f782cdf95873915e7e1a8cc0f848639 100644 (file)
@@ -40,9 +40,12 @@ import Mechanics;
 real theta = 5;
 real E_mag = 0.1cm;
 
-Vector T = Vector((0,0), mag=E_mag/Sin(theta), dir=90+theta, "$T$");
-Vector G = Vector((0,0), mag=E_mag/Tan(theta), dir=-90, "$mg$");
-Vector E = Vector((0,0), mag=3*E_mag, dir=0, "$F_E$");
+Vector T = Vector((0,0), mag=E_mag/Sin(theta), dir=90+theta,
+    L=Label("$T$", position=EndPoint));
+Vector G = Vector((0,0), mag=E_mag/Tan(theta), dir=-90,
+    L=Label("$mg$", position=EndPoint));
+Vector E = Vector((0,0), mag=3*E_mag, dir=0,
+    L=Label("$F_E$", position=EndPoint, align=E));
 
 T.draw();
 G.draw();
index fa4222298d911137a7b250607f50bf961f2334f7..3de9197925e56696956c57981a5088559b36dbdf 100644 (file)
@@ -18,8 +18,8 @@ Charge q1 = aCharge((0,0), q=3, "$q_1$");
 Charge q2 = aCharge((d,0), q=1, "$q_2$");
 Charge q3 = aCharge((x,0), q=0, "$q_3$");
 
-Distance dx = Distance((0,0), (x,0), offset=-30pt, "$x$");
-Distance dd = Distance((0,0), (d,0), offset=-12pt, "$d$");
+Distance dx = Distance((0,0), (x,0), offset=30pt, "$x$");
+Distance dd = Distance((0,0), (d,0), offset=12pt, "$d$");
 
 dx.draw();
 dd.draw();
index 755921430de2e9d38411a74827c2d2e37e4fa5d0..b43eab8194213a1104a20a828260a257f363bf3d 100644 (file)
@@ -24,7 +24,7 @@ real u=1cm;
 
 Vector f = Force(mag=u, dir=90, Label("$\vect{F}_B$", EndPoint, N));
 f.draw();
-Vector v = Velocity(mag=u, phi=90, Label("$\vect{v}$", EndPoint, S));
+Vector v = Velocity(mag=u, phi=90, Label("$\vect{v}$", EndPoint, E));
 v.draw();
 label("\Part{b}", (0,0), S);
 \end{asy}
@@ -36,7 +36,7 @@ real u=1cm;
 
 Vector f = Force(mag=u, dir=180, Label("$\vect{F}_B$", EndPoint, N));
 f.draw();
-Vector v = Velocity(mag=u, phi=-90, Label("$\vect{v}$", EndPoint, S));
+Vector v = Velocity(mag=u, phi=-90, Label("$\vect{v}$", EndPoint, E));
 v.draw();
 label("\Part{c}", (0,0), S);
 \end{asy}
index 92281a52e249a0c91e33fd79d91a7fa44a460070..1831a542519c16a3d0160f97f8fdc7e3529543f0 100644 (file)
@@ -34,7 +34,8 @@ for (int i=0; i<Bs.length; i+=1) {
 }
 
 Charge a = nCharge((-0.5*width-24pt, 0), "$e^-$");
-Vector v = Velocity(a.center(), dir=0, "$\vect{v}$");
+Vector v = Velocity(a.center(), dir=0,
+    L=Label("$\vect{v}$", position=EndPoint, align=RightSide));
 v.draw();
 a.draw();
 
index f93703b3a92b01f506bdc143693bf12846180617..e7601341fc39ca9bb239718bf7ae7e0b5b2d2a63 100644 (file)
@@ -18,9 +18,11 @@ real high = 0.5d;
 
 draw_ijhat(0.8*low*(-1,-1));
 
-Vector Ix = Current((-low, 0), (high+low)+12pt, dir=0, "$5.00\U{A}$");
+Vector Ix = Current((-low, 0), (high+low)+12pt, dir=0,
+    L=Label("$5.00\U{A}$", position=EndPoint, align=S));
 Ix.draw();
-Vector Iy = Current((0, -low), (high+low), dir=90, "$3.00\U{A}$");
+Vector Iy = Current((0, -low), (high+low), dir=90,
+    L=Label("$3.00\U{A}$", position=EndPoint, align=W));
 Iy.draw();
 
 pair P = (0.4d, 0.3d);
@@ -62,10 +64,13 @@ import ElectroMag;
 
 real d = 0.5cm;
 
-Vector Bx = BField(mag=5d, dir=-90, "$\vect{B}_{xP}$");
-Vector By = BField(mag=3d, dir=0, "$\vect{B}_{yP}$");
+Vector Bx = BField(mag=5d, dir=-90,
+    L=Label("$\vect{B}_{xP}$", position=EndPoint));
+Vector By = BField(mag=3d, dir=0,
+    L=Label("$\vect{B}_{yP}$", position=EndPoint));
 pair b = Bx.mag*dir(Bx.dir) + By.mag*dir(By.dir);
-Vector B = BField(mag=length(b), dir=degrees(b), "$\vect{B}_P$");
+Vector B = BField(mag=length(b), dir=degrees(b),
+    L=Label("$\vect{B}_P$", position=EndPoint));
 Angle t = Angle(dir(0), (0,0), b, "$\theta_P$");
 t.draw();
 Bx.draw();
index 40e49563cbbeec34bd681bb395c75f3e38049050..7295b64451e92245cf54bcd4159e24e588d26c83 100644 (file)
@@ -10,9 +10,6 @@ positive, and which is negative?  \Part{b} Find the angle $\theta$
 between the strings in terms of $E$, $q$, $m$, and $g$.  \Part{c} As
 the electric field is gradually increased in strength, what does your
 result from \Part{b} give for the largest possible angle $\theta$?
-\end{problem*}
-
-\begin{nosolution}
 \begin{center}
 \begin{asy}
 import Mechanics;
@@ -25,8 +22,8 @@ real dy = .6; // Distance below charges to E field vector
 
 Charge a = neutralCharge(dir(-90+phi)*L*u, L="$q_R$");
 Charge b = neutralCharge(dir(-90-phi)*L*u, L="$q_L$");
-Wire La = Wire((0,0), a.center(), L=Label("$L$", align=NW, embed=Shift));
-Wire Lb = Wire(b.center(), (0,0), L=Label("$L$", align=NE, embed=Shift));
+Wire La = Wire((0,0), a.center(), L=Label("$L$", align=NE, embed=Shift));
+Wire Lb = Wire((0,0), b.center(), L=Label("$L$", align=NW, embed=Shift));
 Angle theta = Angle(a.center(), (0,0), b.center(), L="$\theta$");
 Surface s = Surface((a.center().x, 0), (b.center().x, 0));
 Vector E = EField(a.center() - (0,dy)*u, mag=(a.center().x - b.center().x),
@@ -41,7 +38,7 @@ a.draw();
 b.draw();
 \end{asy}
 \end{center}
-\end{nosolution}
+\end{problem*}
 
 \begin{solution}
 \Part{a}
@@ -50,40 +47,17 @@ b.draw();
 import Mechanics;
 import ElectroMag;
 
-real u = 1cm; // Length of 1 m on the page
-real L = 2; // Length of cable
-real phi = 30; // Half angle between cables
-real dy = .6; // Distance below charges to E field vector
-
-Charge a = nCharge(dir(-90+phi)*L*u, L="$q_{R-}$");
-Charge b = pCharge(dir(-90-phi)*L*u, L="$q_{L+}$");
-Wire La = Wire((0,0), a.center(), L="$L$");
-Wire Lb = Wire(b.center(), (0,0), L="$L$");
-Angle theta = Angle(a.center(), (0,0), b.center(), L="$\theta$");
-Surface s = Surface((a.center().x, 0), (b.center().x, 0));
-Vector E = EField(a.center() - (0,dy)*u, mag=(a.center().x - b.center().x),
-    dir=-180, L="$E$");
-
-s.draw();
-La.draw();
-Lb.draw();
-theta.draw();
-E.draw();
-a.draw();
-b.draw();
-\end{asy}
-
-\begin{asy}
-import Mechanics;
-import ElectroMag;
-
 real phi = 30; // Half angle between cables
 
 Charge a = nCharge();
-Vector Fq = Force(a.center(), mag=.4cm, dir=-180, L="$F_q$");
-Vector FT = Force(a.center(), mag=1cm, dir=90+phi, L="$F_T$");
-Vector FE = Force(a.center(), mag=Sin(phi)*FT.mag+Fq.mag, dir=0, L="$F_E$");
-Vector Fg = Force(a.center(), mag=Cos(phi)*FT.mag, dir=-90, L="$F_g$");
+Vector Fq = Force(a.center(), mag=.4cm, dir=-180,
+    L=Label("$F_q$", position=EndPoint, align=W));
+Vector FT = Force(a.center(), mag=1cm, dir=90+phi,
+    L=Label("$F_T$", position=EndPoint, align=N));
+Vector FE = Force(a.center(), mag=Sin(phi)*FT.mag+Fq.mag, dir=0,
+    L=Label("$F_E$", position=EndPoint, align=E));
+Vector Fg = Force(a.center(), mag=Cos(phi)*FT.mag, dir=-90,
+    L=Label("$F_g$", position=EndPoint, align=S));
 Fq.draw();
 FT.draw();
 FE.draw();
@@ -95,6 +69,8 @@ Fq.center = FT.center = FE.center = Fg.center = b.center();
 Fq.dir += 180;
 FT.dir -= 2*phi;
 FE.dir += 180;
+Fq.label.align = E;
+FE.label.align = W;
 Fq.draw();
 FT.draw();
 FE.draw();
index fe08ee096a29d53b88d78b2dad4384888c8e9def..6f16ccd1de40fd7267abbccd6378d9cdd593379c 100644 (file)
@@ -29,7 +29,8 @@ Wire bottom_plate = Wire((0,-.5*dy)*u, (L,-.5*dy)*u);
 
 Vector E;
 for (int i=0; i<n; i+=1) { 
-  E = EField((L*(i+.5)/n, -.35*dy)*u, mag=.7*dy*u, dir=90, L="$E$");
+  E = EField((L*(i+.5)/n, -.35*dy)*u, mag=.7*dy*u, dir=90,
+      L=Label("$E$", position=BeginPoint, align=NE));
   E.draw();
 }
 
index c97757b371e6638d0cf85180f225eae0bbfe7862..4865c862032f8d578152259c221b1820f3d401aa 100644 (file)
@@ -21,7 +21,7 @@ real u = 1cm;
 real a = 1;
 
 Charge p = pCharge((0,0), L="$q$");
-Charge n = pCharge((a,0)*u, L="$-2q$");
+Charge n = nCharge((a,0)*u, L=Label("$-2q$", align=N));
 
 draw_ijhat((0,0));
 p.draw(); n.draw();
index 259d73e5a91d2aec76361021a26d741033be947d..ab98594c162e65fc189fef32df363208d98eb8c8 100644 (file)
@@ -43,7 +43,8 @@ Vector Bs[];
 real dBy = supRadius*2/sqrt(3);
 int i;
 Bs.push(BField(cBar-(0,dBy), phi=-90));
-Bs.push(BField(cBar+(0,dBy), phi=-90, "\vect{B}"));
+Bs.push(BField(cBar+(0,dBy), phi=-90,
+    L=Label("\vect{B}", position=EndPoint, align=N)));
 Bs.push(BField(cBar+(-lBar/2,dBy), phi=-90));
 Bs.push(BField(cBar+(+lBar/2,dBy), phi=-90));
 for (i=0; i<Bs.length; i+=1) {
index 820b8711296b594080f94f0b54e8ae3108388ec1..143ace2bef15498ded510c4cce5b080970372caa 100644 (file)
@@ -47,9 +47,11 @@ for (i=0; i<Bs.length; i+=1) {
 }
 draw(scale(r)*unitcircle, Bs[0].outline+dashed);
 
-Distance Dwire = Distance((pLL+2*pLR)/3, (pUL+2pUR)/3, "$45.0\U{cm}$");
+Distance Dwire = Distance((pLL+2*pLR)/3, (pUL+2pUR)/3,
+    L=Label("$45.0\U{cm}$", align=LeftSide, embed=Shift));
 Dwire.draw();
-Distance DdB = Distance((+r,-r), (-r,-r), offset=-3mm, L="$75.0\U{cm}$");
+Distance DdB = Distance((+r,-r), (-r,-r), offset=-3mm,
+    L=Label("$75.0\U{cm}$", align=LeftSide, embed=Shift));
 DdB.draw();
 \end{asy}
 \end{center}
index 2b69360930370a21db1896fe2b89c81b002bf3c3..cfe022e8c9f8330996ca97c2c31f860d46d17d08 100644 (file)
@@ -35,7 +35,7 @@ wbot.draw();
 wbot_seg.draw();
 TwoTerminal Ibot = current((0,-Ysep/2), 180, "$24.0\U{A}$");
 Distance dSegbot = Distance((-Xsep-Xseg/2,-Ysep/2), (-Xsep+Xseg/2,-Ysep/2),
-                            offset=2mm, L=Label("$1.50\U{mm}$", S));
+                            offset=2mm, L=Label("$1.50\U{mm}$", align=S));
 dSegbot.draw();
 
 
@@ -46,7 +46,7 @@ wtop.draw();
 wtop_seg.draw();
 TwoTerminal Itop = current((Ibot.end.x,Ysep/2), "$12.0\U{A}$");
 Distance dSegtop = Distance((-Xsep-Xseg/2,Ysep/2), (-Xsep+Xseg/2,Ysep/2),
-                            offset=-2mm, Label("$1.50\U{mm}$", N));
+                            offset=-2mm, Label("$1.50\U{mm}$", align=N));
 dSegtop.draw();
 
 \end{asy}
@@ -86,7 +86,7 @@ theta.draw();
 Angle theta2 = Angle((-Xsep,Ysep/2), (0,0), (-Xsep,0), 10mm, "$\theta$");
 theta2.draw();
 
-Vector dL = Vector((-Xsep, Ysep/2), mag=3u, "$\dl$");
+Vector dL = Vector((-Xsep, Ysep/2), mag=3u, L=Label("$\dl$", align=N));
 Vector rhat = Vector((-Xsep, Ysep/2), mag=3u, dir=degrees((Xsep,-Ysep/2)),
                      "$\rhat$");
 dL.draw();
index 05d575efabdf8d59dc10b1f361cce3d66f0b4209..de546ddefa139c98a16dba3b69febf4bcb3b6a69 100644 (file)
@@ -43,7 +43,7 @@ import Mechanics;
 real u = 1cm;
 
 Pendulum p = makePendulum(angleDeg=-40, length=2u,
-                          angleL="$\theta$", stringL="$r$");
+    angleL="$\theta$", stringL=Label("$r$", embed=Shift));
 Spring s = Spring(pFrom=p.mass.center(), pTo=(0,p.mass.center().y),
                   unstretchedLength=abs(p.mass.center().x),
                   L="$2k$");
@@ -75,10 +75,14 @@ real u = 1cm;
 
 Pendulum p = makePendulum(angleDeg=-40, length=2u,
                           angleL="$\theta$");
-Vector fs = Force(p.mass.center(), dir=180, mag=1u, L="$F_s$");
-Vector fg = Force(p.mass.center(), dir=-90, mag=1u, L="$F_g$");
-Vector dx = Vector(p.mass.center(), dir=-40-180, mag=1.5u, L="$x'$");
-Vector dy = Vector(p.mass.center(), dir=-40-90, mag=1.5u, L="$y'$");
+Vector fs = Force(p.mass.center(), dir=180, mag=1u,
+    L=Label("$F_s$", position=EndPoint, align=W));
+Vector fg = Force(p.mass.center(), dir=-90, mag=1u,
+    L=Label("$F_g$", position=EndPoint, align=S));
+Vector dx = Vector(p.mass.center(), dir=-40-180, mag=1.5u,
+    L=Label("$x'$", position=EndPoint));
+Vector dy = Vector(p.mass.center(), dir=-40-90, mag=1.5u,
+    L=Label("$y'$", position=EndPoint));
 Angle xas = Angle(dx.pTip(), p.mass.center(), fs.pTip(), L="$\theta$");
 Angle yag = Angle(dy.pTip(), p.mass.center(), fg.pTip(), L="$\theta$");