Re: Text Alignment in Graphics[]
- To: mathgroup at smc.vnet.net
- Subject: [mg127635] Re: Text Alignment in Graphics[]
- From: Alexei Boulbitch <Alexei.Boulbitch at iee.lu>
- Date: Fri, 10 Aug 2012 02:40:20 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
Hola:
1. I have these graphics (it's a crank I designed and built)
Graphics[{{EdgeForm[Thin], White, Rectangle[{0, 0}, {32.5 + 10 + 73.5 + 0.85 + 1.5, 34.8}]}, {Polygon[{{0, 0}, {32.5, 0}, {32.5, 21.9}, {32.5 + 10, 31.9}, {32.5 + 10 + 73.5, 31.9}, {32.5 + 10 + 73.5, 30.9}, {32.5 + 10 + 73.5 + 0.85, 30.9}, {32.5 + 10 + 73.5 + 0.85, 31.9}, {32.5 + 10 + 73.5 + 0.85 + 1.5, 31.9}, {32.5 + 10 + 73.5 + 0.85 + 1.5, 33.8}, {32.5 + 10 + 73.5 + 0.85, 33.8}, {32.5 + 10 + 73.5 + 0.85, 34.8}, {32.5 + 10 + 73.5, 34.8}, {32.5 + 10 + 73.5, 33.8}, {30.6, 33.8}, {30.6, 11.9}, {20.6, 1.9}, {0, 1.9}, {0, 0}}]}, {Text[1183.5*mm, {118.35/2, 36.8}]}, {Rotate[Text[348*mm, {120.35, 35. 5/2}], 90*Degree]}, {Rotate[Text[319*mm, {98, 31.9/2}], 90*Degree]}, {Dashed, Line[{{0, 17.4}, {118.35, 17.4}}], Line[{{100, 0}, {100, 31.9}}]}, {Text[325*mm, {32.5/2, 19.4}]}, {Text[(118.35 - 32.5 -
1.9)*mm
, {118.35/2 + 16 + 1.9, 19.4}]}, {Text[ "Material:Blankstahl, rund, Durchmesser 19 \ mm.", {32, -3}]}, {Text["Passierstift dito, \ Durchmesser 8,5 mm, L=E4nge 39 mm.", {36, -6}]}, {Text["Stummell=E4nge oben rechts 15 mm.", {23, -9}]}, {Text["Versteifungsdreiecke 6 mm, \ 100 x 100 x 141,4 mm.", {34.5, -12}]}, {FontWeight -> Bold, Text["Anwerfkurbel FJ40, Maschine 2F", {118.35/2, 42}]}}]
The rectangle's lower left corner is at {0, 0}, for the texts
{Text[ "Material:Blankstahl, rund, Durchmesser 19 \ mm.",{32, - 3}]}, {Text["Passierstift dito, \ Durchmesser 8,5 mm, L=E4nge 39 mm.", {36, -6}]}, {Text["Stummell=E4nge oben rechts 15mm.", {23,-9}]}, {Text["Versteifungsdreiecke 6 mm, \ 100 x 100 x 141,4 mm.", {34.5, -12}]},
to be left aligned along the ordinate below the rectangle I have to set their x-coordinates, depending on the length of each text, between 23 and 36 rather than 0 as one might expect. These settings for x only work for a give
n size of the graphics. When I increase the size the texts move to right but not uniformly so. The texts inside the rectangle, the header and {Text[1183.5*mm, {118.35/2, 36.8}]}, {Rotate[Text[348*mm, {120.35,35.5/2}], 90*Degree]}, however, move to their appropriate places.
How can the undesirable eastward migration of the texts below the rectangle be remedied?
2. Is there a symbol analogous to JoinForm["Round"] to round a polygon's corners? (EdgeForm[] does not accept "Round".)
Best regards,
MATTHIAS BODE
Ni, Matthias,
To answer the first part of your question, here is a function to draw this skizze and alike:
skizze[image_, text_, size1_, size2_, indent_] := Module[{gr1, gr2},
gr1 = Graphics[image, ImageSize -> size1];
gr2 = Row[{
Spacer[indent],
Column[Style[#, size2] & /@ text, Alignment -> Left]
}];
Panel[Column[{gr1, gr2}, Alignment -> Left], Background -> White]
];
The arguments of this function in your case are:
image = {{EdgeForm[Thin], White,
Rectangle[{0, 0}, {32.5 + 10 + 73.5 + 0.85 + 1.5,
34.8}]}, {Polygon[{{0, 0}, {32.5, 0}, {32.5, 21.9}, {32.5 + 10,
31.9}, {32.5 + 10 + 73.5, 31.9}, {32.5 + 10 + 73.5,
30.9}, {32.5 + 10 + 73.5 + 0.85,
30.9}, {32.5 + 10 + 73.5 + 0.85,
31.9}, {32.5 + 10 + 73.5 + 0.85 + 1.5,
31.9}, {32.5 + 10 + 73.5 + 0.85 + 1.5,
33.8}, {32.5 + 10 + 73.5 + 0.85,
33.8}, {32.5 + 10 + 73.5 + 0.85, 34.8}, {32.5 + 10 + 73.5,
34.8}, {32.5 + 10 + 73.5, 33.8}, {30.6, 33.8}, {30.6,
11.9}, {20.6, 1.9}, {0, 1.9}, {0, 0}}]}, {Text[
1183.5*mm, {118.35/2, 36.8}]}, {Rotate[
Text[348*mm, {120.35, 35.5/2}], 90*Degree]}, {Rotate[
Text[319*mm, {98, 31.9/2}], 90*Degree]}, {Dashed,
Line[{{0, 17.4}, {118.35, 17.4}}],
Line[{{100, 0}, {100, 31.9}}]}, {Text[
325*mm, {32.5/2, 19.4}]}, {Text[(118.35 - 32.5 - 1.9)*
mm, {118.35/2 + 16 + 1.9, 19.4}]}};
text = {"Material:Blankstahl, rund, Durchmesser 19 mm.",
"Passierstift dito,Durchmesser 8,5 mm, L=E4nge 39 mm.",
"Stummell=E4nge oben rechts 15 mm.",
"Versteifungsdreiecke 6 mm, 100\[Times]100\[Times]141,4 mm.",
"Anwerfkurbel FJ40, Maschine 2F"};
Try to evaluate this:
skizze[image, text, 300, 10, 5]
skizze[image, text, 500, 10, 7]
and then play with the parameters size1, size2 and indent.
Hope it helps.
For the second question, have a look at Menu/Help/RoundingRadius
Have fun, Alexei
Alexei BOULBITCH, Dr., habil.
IEE S.A.
ZAE Weiergewan,
11, rue Edmond Reuter,
L-5326 Contern, LUXEMBOURG
Office phone : +352-2454-2566
Office fax: +352-2454-3566
mobile phone: +49 151 52 40 66 44
e-mail: alexei.boulbitch at iee.lu