Witam :)
Napisałem program który generuje punkty w przestrzeni które tworzą sferę. Wizualizację można zobaczyć w programie anaglif podanym w załączniku, plik dane.txt należy skopiować do folderu z tym programem. Oto kod:
#include <iostream>
#include <cstdio>
#include <cmath>
#include <fstream>
using namespace std;
int main() {
ofstream plik_zapis("dane.txt");
plik_zapis<<"9191"<<endl;
plik_zapis<<"500 300 100"<<endl;
for(double x=-50; x<=50; x=x+0.5){
double a=sqrt(50*50-x*x);
if(-a+300!=a+300)
plik_zapis << x+500 << ' ' << a+300 << ' ' << 0+100 << endl;
plik_zapis << x+500 << ' ' << -a+300 << ' ' << 0+100 << endl;
if(-a+300!=a+300)
plik_zapis << x+500 << ' ' << 0+300 << ' ' << a+100 << endl;
plik_zapis << x+500 << ' ' << 0+300 << ' ' << -a+100 << endl;
for(int y=-50; y<=50; y=y+6){
double b=sqrt(sqrt(50*50-y*y)*sqrt(50*50-y*y)-x*x);
if(sqrt(50*50-y*y)*sqrt(50*50-y*y)-x*x>=0){
if(-a+300!=a+300)
plik_zapis << x+500 << ' ' << y+300 << ' ' << b+100 << endl;
plik_zapis << x+500 << ' ' << y+300 << ' ' << -b+100 << endl;
}
}
for(int i=20; i<180; i=i+20){
double m=x*cos(i*M_PI/180)-0, n=x*sin(i*M_PI/180)+0;
if(-a+300!=a+300)
plik_zapis << m+500 << ' ' << a+300 << ' ' << n+100 << endl;
plik_zapis << m+500 << ' ' << -a+300 << ' ' << n+100 << endl;
}
}
plik_zapis<<"0";
cout << "koniec";
getchar();
return 0;
}
Pomógłby mi to ktoś przerobić na obietkowy? :)
Próbowałem stworzyć taką klasę:
class wspolrzedne{
public:
double x;
void petla(double x, double y, double z){
if(-y!=y)
plik_zapis << x+500 << ' ' << y+300 << ' ' << z+100 << endl;
plik_zapis << x+500 << ' ' << -y+300 << ' ' << z+100 << endl;
}
};
ale zeby uzyc plik_zapis musze to uprzedzic ofstream plik_zapis("dane.txt") ale nie wiem gdzie to wcisnąć :)