From: Josh Vermaas (
Date: Tue Jun 23 2015 - 12:34:31 CDT

Hi Bharat,

If I understand you correctly, you want to make the whole arrow longer,
right? Just manipulate the variable end within the procedure using a
combination of vector operations, which are described in the user guide: Something
like "set end [vecadd $start [vecscale 2.0 [vecsub $end $start]]]" will
make the arrow longer. However I may be misinterpreting what you want to do.

-Josh Vermaas

On 6/23/15 11:45 AM, Bharat Sharma wrote:
> Hello Experts,
> I would like to draw the arrow lines on VMD display connecting two
> atoms. I follow the following.
> proc vmd_draw_arrow {mol start end} {
> # an arrow is made of a cylinder and a cone
> set middle [vecadd $start [vecscale 0.9 [vecsub $end $start]]]
> graphics $mol cylinder $start $middle radius 0.15
> graphics $mol cone $middle $end radius 0.25
> }
> vmd_draw_arrow 0 $pos1 $pos2
> I need to extend the line to show the angle between two vectors. How
> do I do that? One way to do this is finding the coordinate of end
> point, but how can I find it?
> Any suggestions are appreciated.
> Best regards,
> Bharat Sharma