I would like to display some bond lengths, bond angles, and torsion angles of a molecule with MoleculePlot3D.

For the example

mol = Molecule["hydrogenperoxide"];

I would like to obtain something like the following figures:

enter image description here

enter image description here

enter image description here

  • 1
    $\begingroup$ You can use Show[MoleculePlot3D[mol], Graphics3D[{Text[<your text>, <coordinates>]}]]. You just need to compute the coordinates you want to place the text at. $\endgroup$
    – Jason B.
    Nov 5, 2021 at 16:17
  • $\begingroup$ @JasonB. Thank you. I have updated my question with the figures that I would like to generate. $\endgroup$
    – TobiR
    Nov 5, 2021 at 16:35
  • $\begingroup$ Which part are you struggling with? Computing the planes/lines to display or actually displaying them as Graphics3D objects? $\endgroup$
    – b3m2a1
    Nov 5, 2021 at 18:21
  • $\begingroup$ @b3m2a1 I can calculate the distances and angles, so they can be assumed to be known. $\endgroup$
    – TobiR
    Nov 5, 2021 at 18:27
  • 2
    $\begingroup$ Then just add a InfintePlane from the normals needed for the dihedral angle {Dashed, Line[{...}]} for the bond distance line, and use this mathematica.stackexchange.com/questions/10957/… for the arcs for the angles. Then layer on @JasonB.'s comment for the text labels and you're done $\endgroup$
    – b3m2a1
    Nov 5, 2021 at 18:29


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.