Thank you Bob for your thorough explanation.  I think that I finally understand.

While jmol's biggest advantage may be with its ability to let users interact 
with structures, it is also an excellent tool for making movie, especially with 
the povray export.  If I wanted to make a movie of a molecule rotating about 
the y-axis, the distance between the two cylinders would not have to change, 
because I would not have to worry about rotation about any other axis.  Do you 
think that it would be simple for me to make this modification?  I have looked 
at the code, but I have not found where the distance between the two cylinders 
is defined and the algorithm you mentioned is implemented.  I would very much 
appreciate if you could give me some hints as to how I can disable the changing 
of the distance between the two cylinders representing a double bond.

Thank you very much.
Jay



On 8/24/10 3:16 PM, "Robert Hanson" <hans...@stolaf.edu> wrote:



On Mon, Aug 23, 2010 at 11:01 AM, Shore, Jay <jay.sh...@sdstate.edu> wrote:

I really like jmol's multiple bond representation - it is the only 
visualization tool that I know of that actually
that actually does multiple bonds.

The distance between the cylinders (that represent a double bond) changes when 
the molecule is rotated depending on the relative orientation of the bond and 
the axis of rotation.  For example, if you spin a molecule with a double bond 
on an axis parallel to the double bond there is no change in distance between 
the cylinders representing the double bond.  If you spin the same molecule on 
an axis perpendicular to the double bond, the distance between the cylinders 
change.

correct

If you spin benzene about an angle perpendicular to one of the double bonds, 
the distance between the cylinders for the different double bonds change 
differently.  If you turn smartAromatic off, the distance between the dashed 
line and the solid line is different depending on the relative orientation of 
the spin axis and the bond axis.

correct

I would assume that the apperent distance between the two cylinders 
representing a double bond should always be the same no matter how the molecule 
was rotated.  I would also assume that when a molecule is rotated the double 
bonds are rotated to keep their apparent distance the same.  I just wonder if 
the angle between the the bond axis and the rotation axis was considered when 
rotating the double bonds.



Jay, that's not the algorithm. The algorithm sets the distance between the 
lines of a double bond to be proportional to the distance between the bond 
endpoints on the screen. This ensures smooth transition between vertical and 
horizontal bonds and scales the bond to zoom appropriately.

Notice that multiple bond lines are not shown in perspective -- always 
parallel. This is because they are calculated using 2D screen coordinates, not 
3D molecular coordinates (and, I guess, that was not desired).

So let's see, is there anything wrong with the first assumption? Given that 
assumption:

1) What should looking straight down a double bond look like?

2) Starting with whatever your answer to (1) is, now rotate that model by a 
slight amount around x:

   rotate x 20

   Now what should it look like?

2) Starting with whatever your answer to (1) is again, now rotate that model by 
a slight amount around y:

   rotate y 20

   Now what should it look like?

3) How does one smoothly get from pictures (2) to (1) to (3)?

I think that's the problem solved by the algorithm used. But if you have any 
example software that does this more to your liking, show it to us so we can 
see. Maybe there's a better algorithm.

Bob
------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
Jmol-users mailing list
Jmol-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to