Контрольная работа: Сглаженная поверхность для границы трех атомов в пространстве

{ int i,kol=0;

aj=x[2]-x[1];

bj=y[2]-y[1];

cj=z[2]-z[1];

ak=x[3]-x[1];

bk=y[3]-y[1];

ck=z[3]-z[1];

Ris=(r[1]+Rc)*(r[1]+Rc);

Rjs=(r[2]+Rc)*(r[2]+Rc);

Rks=(r[3]+Rc)*(r[3]+Rc);

dj=(0.5*(Ris-Rjs+(aj*aj)+(bj*bj)+(cj*cj)));

dk=(0.5*(Ris-Rks+(ak*ak)+(bk*bk)+(ck*ck)));

A=(aj*bk-ak*bj)*(aj*bk-ak*bj)+(bj*ck-bk*cj)*(bj*ck-bk*cj)+(cj*ak-ck*aj)*(cj*ak-ck*aj);

Bx=(dj*bk-dk*bj)*(aj*bk-ak*bj)+(dj*ck-dk*cj)*(aj*ck-ak*cj);

By=(dj*ck-dk*cj)*(bj*ck-bk*cj)+(dj*ak-dk*aj)*(bj*ak-bk*aj);

Bz=(dj*ak-dk*aj)*(cj*ak-ck*aj)+(dj*bk-dk*bj)*(cj*bk-ck*bj);

Cx=(dj*bk-dk*bj)*(dj*bk-dk*bj)+(dj*ck-dk*cj)*(dj*ck-dk*cj)-Ris*(bj*ck-bk*cj)*(bj*ck-bk*cj);

Cy=(dj*ck-dk*cj)*(dj*ck-dk*cj)+(dj*ak-dk*aj)*(dj*ak-dk*aj)-Ris*(cj*ak-ck*aj)*(cj*ak-ck*aj);

Cz=(dj*ak-dk*aj)*(dj*ak-dk*aj)+(dj*bk-dk*bj)*(dj*bk-dk*bj)-Ris*(aj*bk-ak*bj)*(aj*bk-ak*bj);

if ((Bx*Bx-A*Cx)<0) kol++;

if ((By*By-A*Cy)<0) kol++;

if ((Bz*Bz-A*Cz)<0) kol++;

if (kol!=0) {printf("SPHERA RADIUSA %d NE MOZHET ODNOVREMENNO KASATSJA 3 DANNIH SPHER",Rc);system("PAUSE");exit(1);}

Xc=double(x[1])+(Bx+sqrt((Bx*Bx-A*Cx)))/A;

double dg1,dg2,dg3;

double xc1,yc1,zc1,xc2,yc2,zc2,xc3,yc3,zc3,pc1,pc2,pc3;

int nom;

int j=1;

while (j<1500)

К-во Просмотров: 440
Бесплатно скачать Контрольная работа: Сглаженная поверхность для границы трех атомов в пространстве