[C] Zamiana na C++ SDL-uklad sloneczny

0
#include "primlib.h"
#include <stdlib.h>
#include <math.h>
#include <windows.h>

 
int main(int argc, char* argv[])
{
    
 float dteta  = M_PI/100;        		

 float x[8][1]={1,1,1,1,1,1,1,1}; 
 float y[8][1]={1,1,1,1,1,1,1,1};
 float planeta[8][6];

 float p;
 float q; 
 
 float a, b, w, h;
 int i,m,k;
 


//promien od slonca
    planeta[0][2]=13;   
    planeta[1][2]=20; 
    planeta[2][2]=28; 
    planeta[3][2]=42; 
    planeta[4][2]=100; 
    planeta[5][2]=190; 
    planeta[6][2]=280; 
    planeta[7][2]=310; 
 
 //srednica planety   
    planeta[0][3]=1;   
    planeta[1][3]=2; 
    planeta[2][3]=2; 
    planeta[3][3]=1; 
    planeta[4][3]=11; 
    planeta[5][3]=9; 
    planeta[6][3]=4; 
    planeta[7][3]=4; 

//okres    
    planeta[0][4]=6.86;   
    planeta[1][4]=2.66; 
    planeta[2][4]=1.65; 
    planeta[3][4]=0.88; 
    planeta[4][4]=0.14; 
    planeta[5][4]=0.056; 
    planeta[6][4]=0.02; 
    planeta[7][4]=0.01;
 
 //kolor   
    int kolor[8];
    kolor[0]=0xeeeeeeff;   
    kolor[1]=0xcc9933ff; 
    kolor[2]=0x0033ffff; 
    kolor[3]=0xff0000ff; 
    kolor[4]=0x996622ff; 
    kolor[5]=0x998866ff; 
    kolor[6]=0x99cceeff; 
    kolor[7]=0x0099eeff;
    
 char* nazwy_planet[8]={"Merkury","Wenus","Ziemia","Mars","Jowisz","Saturn","Uran","Neptun"};
 char* mlynek[5]={"-","\\","|","/"};
 m=0;
 if(initGraph()) exit(3);
 w = screenWidth();
 h = screenHeight();
 a = w/2;
 b = h/2;
 
 while (!isKeyDown(' '))
 {
    
   filledRect(0, 0, w, h,0x000000ff );
   filledCircle(a,b,14,0xffff00ff);
   
   printf("%s\n",mlynek[m]);
     for(k=0;k<8;k++){                                           
   filledCircle(planeta[k][0],planeta[k][1],planeta[k][3],kolor[k]);
   if(k==5){
            circle(planeta[k][0],planeta[k][1],planeta[k][3]+5,kolor[k]);
        }

printf("%s\t-\tX:%f\tY:%f\r\n",nazwy_planet[k],planeta[k][0],planeta[k][1]);

for (i = 0; i < 1; i++)
   { 
    p=x[k][i]*cos(dteta*planeta[k][4])+y[k][i]*sin(dteta*planeta[k][4]);  
    q=-x[k][i]*sin(dteta*planeta[k][4])+y[k][i]*cos(dteta*planeta[k][4]);
    x[k][i]=p;
    y[k][i]=q;
   planeta[k][0]=planeta[k][2]*x[k][0]+a;
   planeta[k][1]=planeta[k][2]*y[k][0]+b; 

   } 
}

m++;
if(m>=4){
        m=0;
       }
    
   sleep(60);
   system("cls"); 
   fflush(stdout);
   updateScreen(); 
 }    
 return 0;
}

Jak to przerobić na c++? Wiem, ze jak zapisze ten plik na cpp wyskakuje mi, ze w funkcjach mam float a powinien byc int, oki, zamieniam to i wywala mi wtedy wszystkie funkcje z SDL_main? linker error undefined reference to 'initGraph()' I Tu nie wiem o co mu chodzi? Pomocy :(

0

zależy w czym kompilujesz
w standardzie iso, pliki nagłówkowe nie powinny mieć końcówki .h, także usuń to z sdl i może się poprawi

0

Nie... jak sie okazało, ścieżki do lib były nie poprawne i jeszcze jak sie dodało sdl.dll.a smiga :P
Ale dzieki za odp :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1