my problem is I don't know how to generate e.g. 20 water molecules:
Graphics3D[
Rotate[First@ChemicalData["Water", "MoleculePlot"],
45 Degree, {8, .5, 0}]]
and I don't know as well how to show them in the figure:
a = 30;
b = 32;
c = -1;
z = -.5;
h = -50 z;
center = 13;
CoolColor[z_] := RGBColor[1 - z, 1 - z, 1];
liquid = Graphics3D[{Opacity[.02], LightBlue, EdgeForm[],
Cuboid[{center - a, c - 3, -.5}, {center + a, b + 4, h}]},
Boxed -> False];
bottomSurface =
Graphics3D[{Opacity[.3], EdgeForm[], Blue,
Cuboid[{center - a, c - 3, -1}, {center + a, b + 4, -.5}]},
Boxed -> False];
topSurface =
Graphics3D[{Opacity[.3], EdgeForm[], Blue,
Cuboid[{center - a, c - 3, h}, {center + a, b + 4, h + 3}]},
Boxed -> False];
sphere = Graphics3D[{Opacity[.3], Blue, Specularity[White, 5],
Sphere[{center, b/2, .82 h}, 3]}, Boxed -> False,
Lighting -> "Neutral" ];
cone = {(1 + 4 v) Cos[u], (1 + 4 v) Sin[u], 22.5 + 15 v};
laser = ContourPlot3D[(x - center)^2 + (y - b/2)^2 - (z - .75 h)^2 ==
11, {x, -10, 40}, {y, -10, 40}, {z, -.5, h + 3},
BoundaryStyle -> None, Mesh -> None,
ContourStyle ->
Directive[Orange, Opacity[0.6], Specularity[White, 10]]];
line = Graphics3D[{Black, Arrowheads[{{-0.02, 0}, {0.02, .42}}],
Arrow[Tube[{{6, b/2, h}, {6, b/2, .82 h}, {12, b/2, .82 h}},
0.07]]}];
lineLF1 =
Graphics3D[{Red,
Tube[{{center - .5, b/2, .75 h}, {center + .5, b/2, .75 h}},
0.07]}];
lineLF2 =
Graphics3D[{Red,
Tube[{{center, b/2, .73 h}, {center, b/2, .77 h}}, 0.07]}];
lineC1 = Graphics3D[{Black,
Tube[{{center - .5, b/2, .82 h}, {center + .5, b/2, .82 h}},
0.07]}];
lineC2 = Graphics3D[{Black,
Tube[{{center, b/2, .8 h}, {center, b/2, .84 h}}, 0.07]}];
line2 = Graphics3D[{Thick, Blue,
Line[{{13.2, 10, .75 h + 1.1}, {13.2, 10, .75 h - .1}}]}];
line3 = Graphics3D[{Thick,
Line[{{12.5, 10, .84 h}, {13.9, 10, .84 h}}]}];
line4 = Graphics3D[{Thick,
Line[{{13.2, 10, .84 h + .5}, {13.2, 10, .84 h - .6}}]}];
axeX = Graphics3D[{Red, Arrowheads[0.03],
Arrow[Tube[{{center - 27, b/2, .25 h}, {center - 27,
b/2 - 9, .25 h}}, 0.2]]}];
axeY = Graphics3D[{Blue, Arrowheads[0.03],
Arrow[
Tube[{{center - 27, b/2, .25 h}, {center - 18, b/2, .25 h}},
0.2]]}];
axeZ = Graphics3D[{Green, Arrowheads[0.03],
Arrow[Tube[{{center - 27, b/2, .25 h}, {center - 27, b/2, .57 h}},
0.2]]}];
textLiquid =
Graphics3D[{Blue,
Text[Style["Fluid", FontSize -> 35], {center + 24, b/2, .2 h}]}];
texth = Graphics3D[{Black,
Text[Style["h", FontSize -> 35], {4.5, b/2, .91 h}]}];
textX = Graphics3D[{Red,
Text[Style["x", FontSize -> 35], {center - 28, b/2 - 10, .25 h}]}];
textY = Graphics3D[{Blue,
Text[Style["y", FontSize -> 35], {center - 17, b/2, .25 h}]}];
textZ = Graphics3D[{Green,
Text[Style["z", FontSize -> 35], {center - 27, b/2, .62 h}]}];
textLaserFocus =
Graphics3D[{Red,
Text[Style["Laser Focus", FontSize -> 35], {center + 11,
b/2, .7 h}]}];
textLaser =
Graphics3D[{LightYellow,
Text[Style["Laser Beam", FontSize -> 35], {center, b/2, h - 25}]}];
Show[bottomSurface, topSurface, sphere, liquid, laser, line, lineLF1, \
lineLF2, lineC1, lineC2, axeX, axeY, axeZ, textLiquid, texth, textX, \
textY, textZ, textLaserFocus, textLaser, Boxed -> False]
Thank you very much. Lukas




Translate[]andRotate[]on your water molecule… but, how about taking a step back and talk about what your desired picture is supposed to represent? – J. M.'s missing motivation May 22 '15 at 08:31