Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- void mnoziMatricu(double mat1[][3], int mat2[][1], double krajnja[][1]) {
- for (int i = 0; i < 3; i++) {
- for (int j = 0; j < 3; j++) {
- krajnja[i][0] += mat1[i][j] * mat2[j][0];
- }
- }
- return;
- }
- int main(void) {
- int matABC[3][3] = { 0 };
- double matABCInv[3][3] = { 0 };
- int matT[3][1] = { 0 };
- double matXYZ[3][1] = { 0 };
- printf("Upisi koordinate tocke A u obliku x y z :\n");
- scanf_s("%d %d %d", &matABC[0][0], &matABC[1][0], &matABC[2][0]);
- printf("Upisi koordinate tocke B u obliku x y z :\n");
- scanf_s("%d %d %d", &matABC[0][1], &matABC[1][1], &matABC[2][1]);
- printf("Upisi koordinate tocke C u obliku x y z :\n");
- scanf_s("%d %d %d", &matABC[0][2], &matABC[1][2], &matABC[2][2]);
- printf("Upisi koordinate tocke T u obliku x y z :\n");
- scanf_s("%d %d %d", &matT[0][0], &matT[1][0], &matT[2][0]);
- double det = matABC[0][0] * (matABC[1][1] * matABC[2][2] - matABC[2][1] * matABC[1][2]) -
- matABC[0][1] * (matABC[1][0] * matABC[2][2] - matABC[1][2] * matABC[2][0]) +
- matABC[0][2] * (matABC[1][0] * matABC[2][1] - matABC[1][1] * matABC[2][0]);
- double invdet = 1 / det;
- matABCInv[0][0] = (matABC[1][1] * matABC[2][2] - matABC[2][1] * matABC[1][2]) * invdet;
- matABCInv[0][1] = (matABC[0][2] * matABC[2][1] - matABC[0][1] * matABC[2][2]) * invdet;
- matABCInv[0][2] = (matABC[0][1] * matABC[1][2] - matABC[0][2] * matABC[1][1]) * invdet;
- matABCInv[1][0] = (matABC[1][2] * matABC[2][0] - matABC[1][0] * matABC[2][2]) * invdet;
- matABCInv[1][1] = (matABC[0][0] * matABC[2][2] - matABC[0][2] * matABC[2][0]) * invdet;
- matABCInv[1][2] = (matABC[1][0] * matABC[0][2] - matABC[0][0] * matABC[1][2]) * invdet;
- matABCInv[2][0] = (matABC[1][0] * matABC[2][1] - matABC[2][0] * matABC[1][1]) * invdet;
- matABCInv[2][1] = (matABC[2][0] * matABC[0][1] - matABC[0][0] * matABC[2][1]) * invdet;
- matABCInv[2][2] = (matABC[0][0] * matABC[1][1] - matABC[1][0] * matABC[0][1]) * invdet;
- mnoziMatricu(matABCInv, matT, matXYZ);
- printf("\nBaricentricne koordinate : [x y z] = [%f %f %f]\n", matXYZ[0][0], matXYZ[1][0], matXYZ[2][0]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement