From chemistry-request@server.ccl.net  Thu Jan 27 15:51:24 2000
Received: from neon.chem.ucla.edu (neon.chem.ucla.edu [128.97.35.251])
	by server.ccl.net (8.8.7/8.8.7) with ESMTP id PAA00330
	for <chemistry@ccl.net>; Thu, 27 Jan 2000 15:51:23 -0500
Received: from localhost (renxiao@localhost) by neon.chem.ucla.edu (8.8.0/8.8.0) with SMTP id LAA04146; Thu, 27 Jan 2000 11:53:43 -0800 (PST)
X-Authentication-Warning: neon.chem.ucla.edu: renxiao owned process doing -bs
Date: Thu, 27 Jan 2000 11:53:43 -0800 (PST)
From: Renxiao Wang <renxiao@chem.ucla.edu>
To: rajarshi@presidency.com
cc: Computational Chemistry List <chemistry@ccl.net>
Subject: Re: C codes for dihedral angle
Message-ID: <Pine.GSO.3.95.1000127115018.3615A-100000@neon.chem.ucla.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII


Dear rajarshi,

I think you have already been overwhelmed by unrelevent answers. Here is
exactly what you want:

----------------------------------------------------------------------------
float Torsion_Angle(float p1[3], float p2[3], float p3[3], float p4[3])  {
        int i; 
        float angle; 
        float v12[3],v23[3],v34[3],v1[3],v2[3],v3[3]; 

        for(i=0;i<=2;i++) 
                {
                 v12[i]=p2[i]-p1[i]; 
                 v23[i]=p3[i]-p2[i]; 
                 v34[i]=p4[i]-p3[i]; 
                }

        Cross_Multiply(v12,v23,v1); 
        Cross_Multiply(v23,v34,v2); 

        angle=Angle_Of_Two_Vectors(v1,v2); 

        Cross_Multiply(v1,v2,v3); 

        if((v23[0]/v3[0]>0)||(v23[1]/v3[1]>0)||(v23[2]/v3[2])>0) return
angle; 
        else return -angle;  }


void Cross_Multiply(float v1[3], float v2[3], float result[3])  {
        result[0]=v1[1]*v2[2]-v2[1]*v1[2]; 
        result[1]=v1[2]*v2[0]-v2[2]*v1[0]; 
        result[2]=v1[0]*v2[1]-v2[0]*v1[1]; 

        return;  }

----------------------------------------------------------------------------

This is cut from my program LigBuilder. Hope it helps.

Best wishes,

Arthur

------------------------------------------------------------------------
| Dr. Renxiao Wang                                                     | 
------------------------------------------------------------------------
| Department of Chemistry and Biochemistry | 3281 Sawtelle Blvd. #104  | 
| University of California Los Angeles     | Los Angeles, CA90066      | 
| Los Angeles, CA 90024                    | U.S.A                     | 
| Phone: 310-8250269 (Lab)                 | Phone: 310-3904638 (Home) | 
------------------------------------------------------------------------
| E-mail: renxiao@chem.ucla.edu                                        | 
| WWW: http://zimbu.chem.ucla.edu/~arthur/                             |
------------------------------------------------------------------------




