Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.07 KB | None | 0 0
  1. #include "stdafx.h"
  2.  
  3. void mnoziMatricu(double mat1[][3], int mat2[][1], double krajnja[][1]) {
  4.     for (int i = 0; i < 3; i++) {
  5.         for (int j = 0; j < 3; j++) {
  6.             krajnja[i][0] += mat1[i][j] * mat2[j][0];
  7.         }
  8.     }
  9.     return;
  10. }
  11.  
  12. int main(void) {
  13.  
  14.     int matABC[3][3] = { 0 };
  15.     double matABCInv[3][3] = { 0 };
  16.  
  17.     int matT[3][1] = { 0 };
  18.     double matXYZ[3][1] = { 0 };
  19.  
  20.     printf("Upisi koordinate tocke A u obliku x y z :\n");
  21.     scanf_s("%d %d %d", &matABC[0][0], &matABC[1][0], &matABC[2][0]);
  22.  
  23.     printf("Upisi koordinate tocke B u obliku x y z :\n");
  24.     scanf_s("%d %d %d", &matABC[0][1], &matABC[1][1], &matABC[2][1]);
  25.  
  26.     printf("Upisi koordinate tocke C u obliku x y z :\n");
  27.     scanf_s("%d %d %d", &matABC[0][2], &matABC[1][2], &matABC[2][2]);
  28.  
  29.     printf("Upisi koordinate tocke T u obliku x y z :\n");
  30.     scanf_s("%d %d %d", &matT[0][0], &matT[1][0], &matT[2][0]);
  31.  
  32.     double det = matABC[0][0] * (matABC[1][1] * matABC[2][2] - matABC[2][1] * matABC[1][2]) -
  33.         matABC[0][1] * (matABC[1][0] * matABC[2][2] - matABC[1][2] * matABC[2][0]) +
  34.         matABC[0][2] * (matABC[1][0] * matABC[2][1] - matABC[1][1] * matABC[2][0]);
  35.     double invdet = 1 / det;
  36.  
  37.     matABCInv[0][0] = (matABC[1][1] * matABC[2][2] - matABC[2][1] * matABC[1][2]) * invdet;
  38.     matABCInv[0][1] = (matABC[0][2] * matABC[2][1] - matABC[0][1] * matABC[2][2]) * invdet;
  39.     matABCInv[0][2] = (matABC[0][1] * matABC[1][2] - matABC[0][2] * matABC[1][1]) * invdet;
  40.     matABCInv[1][0] = (matABC[1][2] * matABC[2][0] - matABC[1][0] * matABC[2][2]) * invdet;
  41.     matABCInv[1][1] = (matABC[0][0] * matABC[2][2] - matABC[0][2] * matABC[2][0]) * invdet;
  42.     matABCInv[1][2] = (matABC[1][0] * matABC[0][2] - matABC[0][0] * matABC[1][2]) * invdet;
  43.     matABCInv[2][0] = (matABC[1][0] * matABC[2][1] - matABC[2][0] * matABC[1][1]) * invdet;
  44.     matABCInv[2][1] = (matABC[2][0] * matABC[0][1] - matABC[0][0] * matABC[2][1]) * invdet;
  45.     matABCInv[2][2] = (matABC[0][0] * matABC[1][1] - matABC[1][0] * matABC[0][1]) * invdet;
  46.  
  47.     mnoziMatricu(matABCInv, matT, matXYZ);
  48.     printf("\nBaricentricne koordinate : [x y z] = [%f %f %f]\n", matXYZ[0][0], matXYZ[1][0], matXYZ[2][0]);
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement