Fortran Subroutine to C Function Conversion: PREXYZ1
#include <stdio.h>
void PREXYZ1(double Z00, double XX[], double YY[], double ZZ[], double XA, double YA, int NK) { double X21 = XX[1] - XX[0]; double Y21 = YY[1] - YY[0]; double Z21 = ZZ[1] - ZZ[0]; double X31 = XX[2] - XX[0]; double Y31 = YY[2] - YY[0]; double Z31 = ZZ[2] - ZZ[0]; double DX = Y21 * Z31 - Y31 * Z21; double DY = Z21 * X31 - Z31 * X21; double DZ = X21 * Y31 - X31 * Y21; Z00 = ZZ[0] - (DX * (XA - XX[0]) + DY * (YA - YY[0])) / (DZ + 1.0e-50); }
int main() { double Z00; double XX[3] = {1.0, 2.0, 3.0}; double YY[3] = {4.0, 5.0, 6.0}; double ZZ[3] = {7.0, 8.0, 9.0}; double XA = 10.0; double YA = 11.0; int NK = 3;
PREXYZ1(Z00, XX, YY, ZZ, XA, YA, NK);
printf("Z00: %lf\n", Z00);
return 0;
}
原文地址: https://www.cveoy.top/t/topic/pxmt 著作权归作者所有。请勿转载和采集!