Você está na página 1de 2

#include <iostream>

#include <iomanip>
#include <time.h>
#include <math.h>

using namespace std;

struct t_point {
float x, y, z;
};
int panz=100;

float Abstand(t_point p1, t_point p2)


{
float dx, dy, dz;
dx=p2.x-p1.x; dy=p2.y-p1.y; dz=p2.z-p1.z;
return(sqrt(dx*dx + dy*dy + dz*dz));
}

bool PunktInKugel (float r, t_point mp , t_point t)


{
return(Abstand(mp ,t)<r);
}
bool PunktInWuerfel (float a, t_point mp , t_point t)
{
float a2=a*0.5 ;
return((fabs(t.x-mp .x)<a2) &&
(fabs(t.y-mp .y)<a2) &&
(fabs(t.z-mp .z)<a2));
}

float VolumenKugel (float r)


{
return(4.0 /3.0 *M_PI*r*r*r);
}

int main()
{
// Aufgabenteil 1
t_point p[panz];
float lim=5.0 , lim2=2.0 *lim;
float skal=lim2/RAND_MAX;
//cout << "RAND_MAX = " << RAND_MAX << endl;

srand(time(NULL));
cout << "Teil 1" << endl ;
cout << fixed << setprecision (2);
for (int i=0; i<panz; i++)
{
p[i]. x = rand()*skal - lim;
p[i]. y = rand()*skal - lim;
p[i]. z = rand()*skal - lim;
cout << setw (3) << i+1 << ": "
<< setw (6) << p[i]. x
<< setw (6) << p[i]. y
<< setw (6) << p[i]. z << endl ;
}

// Teil 2
cout << "Teil 2" << endl;
t_point mp, t;
cout << boolalpha;

mp.x= 1.0; mp.y= 0.0; mp.z= 0.0; t.x= 1.5; t.y= 0.5; t.z= 0.0;
cout << PunktInWuerfel(2.0,mp,t) << endl;

mp.z= 1.0;
cout << PunktInWuerfel(2.0,mp,t) << endl;

mp.x=-1.0; mp.y= 2.0; t.x=-2.0; t.y= 3.0; t.z= 2.0;


cout << PunktInWuerfel(5.0,mp,t) << endl;

mp.x= 0.0; mp.y= 0.0; mp.z= 0.0; t.x= 2.0; t.y= 1.0; t.z= 0.0;
cout << PunktInKugel(3.0,mp,t) << endl;

mp.x=-2.0; t.x=-1.0; t.y=-1.0;


cout << PunktInKugel(1.0,mp,t) << endl;

mp.z=-2.0; t.x=-3.0; t.z=-3.0;


cout << PunktInKugel(4.0,mp,t) << endl;

cout << setprecision(3) << VolumenKugel(3.0) << endl << endl;

return(0);
}

Você também pode gostar