Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- using namespace std;
- struct vector
- {
- float x;
- float y;
- float z;
- };
- int main()
- {
- vector vert[3];
- vert[0].x = 25.0f;
- vert[0].y = 15.0f;
- vert[0].z = 15.0f;
- vert[1].x = 50.0f;
- vert[1].y = 20.0f;
- vert[1].z = 20.0f;
- vert[2].x = 30.0f;
- vert[2].y = 40.0f;
- vert[2].z = 5.0f;
- // Get the vectors for each vertice...
- vector vec1, vec2;
- vec1.x = vert[1].x - vert[0].x;
- vec1.y = vert[1].y - vert[0].y;
- vec1.z = vert[1].z - vert[0].z;
- vec2.x = vert[2].x - vert[0].x;
- vec2.y = vert[2].y - vert[0].y;
- vec2.z = vert[2].z - vert[0].z;
- // Get the cross product...
- vector x_prod;
- x_prod.x = (vec1.y * vec2.z) - (vec1.z * vec2.y);
- x_prod.y = -((vec1.x * vec2.z) - (vec1.z * vec2.x));
- x_prod.z = (vec1.x * vec2.y) - (vec1.y * vec2.x);
- // Normalize the cross product...
- vector norm;
- float normal_total = sqrtf(powf(x_prod.x, 2) + powf(x_prod.y, 2) + powf(x_prod.z, 2));
- norm.x = x_prod.x / normal_total;
- norm.y = x_prod.y / normal_total;
- norm.z = x_prod.z / normal_total;
- cout << "Normal x (" << norm.x << "), y (" << norm.y << "), z (" << norm.z << ")" << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement