0 Members and 1 Guest are viewing this topic.
DLLCLBK void InitModule (HINSTANCE hModule){ g_Param.hDLL = hModule; // Allocate GDI ressources g_Param.hFont[0] = CreateFont (-10, 0, 0, 0, 400, 0, 0, 0, 0, 0, 0, 0, 0, "Arial"); g_Param.hFont[1] = CreateFont (10, 6, 0, 0, 700, 0, 0, 0, 0, 0, 0, 0, 0, "Arial"); g_Param.hBrush[0] = CreateSolidBrush (RGB(0,128,0)); g_Param.hBrush[1] = CreateSolidBrush (RGB(128,128,0)); g_Param.hBrush[2] = CreateSolidBrush (RGB(128,0,0));}
CENSURÉcolor = (sliderpos_fuelRCS < 50 ? 1:0);if (sliderpos_fuelRCS < 25) color = 2;HDC hDC = oapiGetDC(surf);RECT rct = {0, 0, (int)sliderpos_fuelRCS, 7};FillRect(hDC, &rct, g_Param.hBrush[color]);oapiReleaseDC(surf, hDC);CENSURÉ
Tenez-vous bien : il est possible de réaliser des conditions en langage préprocesseur Voici comment cela fonctionne :Code : C - Sélectionner12345#if condition /* Code source à compiler si la condition est vraie */#elif condition2 /* Sinon` si la condition 2 est vraie` compiler ce code source */#endif
Pour les flags, ils seraient où ? Dans mon code ? De toute façon, s'il y en avait, ils auraient affectés les autres couleurs, non ?
J'ai testé en changeant de couleur mais ça ne change rien
To obtain the actual force [N] generated by the thruster in vacuum, multiplythe thrust level with its maximum thrust rating. However, the thrust force inthe presence of ambient atmospheric pressure may be lower ifSetThrustPressureDependency has been applied.
J'ai regardé les sources et je trouve un peu bizarre ce qu'il fait.
Je peux indiquer n'importe quelles valeurs mais laquelle utilisée (version API_Reference ou version ShuttleA) ? Je veux quand même quelque chose de précis, pas un nombre fichu au hasard.
// --------------------------------------------------------------bool ShuttleA::RedrawPanel_EngineIndicator (SURFHANDLE surf){ ... for (i = 0; i < 2; i++) { level = GetThrusterLevel (th_main[i]); th = level*GetThrusterMax (th_main[i]); angle = level * (1.5*PI); dx = rad*cos(angle), dy = rad*sin(angle); MoveToEx (hDC, cntx[i], cnty[0], NULL); LineTo (hDC, cntx[i]-(int)dx, cnty[0]-(int)dy); sprintf (cbuf, "%0.0f", th*1e-3); TextOut (hDC, txtx[i], txty0a, cbuf, strlen(cbuf)); sprintf (cbuf, "%0.1f", th/m); TextOut (hDC, txtx[i], txty0b, cbuf, strlen (cbuf));
Martin prend le level avec GetThrusterLevel(), le multiplie par son MAX_MAIN_THRUST qui est de 193520 (comme moi).
const double MAX_MAIN_THRUST = 2128720.0/2.0;// Main engine thrust [N] per engine
double VESSEL::GetThrusterMax ( THRUSTER_HANDLE th ) const Returns the current maximum thrust rating of a thruster. Parameters: th thruster handle Returns:Max. thrust rating a the current atmospheric pressure [N]. Note:If a pressure-dependent Isp rating has been defined for the thruster, and if the vessel is moving through a planetary atmosphere, this method returns the maximum thrust rating given the current atmospheric pressure. Otherwise it returns the maximum vacuum thrust rating of the thruster.
Afin de pouvoir classer et comparer les différents types de propulsion, un critère de performance a été établi : l'impulsion spécifique. Il est défini par :Isp=F/m*g0où F est la poussée fournie par la propulsion, le débit de matière éjectée et g0 l'accélération due au champ de gravité, supposé constant à proximité de la surface d'une planète.
MrSpock a écrit:Edith : " J'ai pas pu m'empecher de regarder ..."J'ai trouvé cette fonction : tu parles de celle là aussi ? :Ah mince ! C'est le SDK 2010...Code: [Select]// --------------------------------------------------------------bool ShuttleA::RedrawPanel_EngineIndicator (SURFHANDLE surf){ ... for (i = 0; i < 2; i++) { level = GetThrusterLevel (th_main[i]); th = level*GetThrusterMax (th_main[i]); angle = level * (1.5*PI); dx = rad*cos(angle), dy = rad*sin(angle); MoveToEx (hDC, cntx[i], cnty[0], NULL); LineTo (hDC, cntx[i]-(int)dx, cnty[0]-(int)dy); sprintf (cbuf, "%0.0f", [glow=yellow,2,300]th*1e-3[/glow]); TextOut (hDC, txtx[i], txty0a, cbuf, strlen(cbuf)); sprintf (cbuf, "%0.1f", th/m); TextOut (hDC, txtx[i], txty0b, cbuf, strlen (cbuf));[/i]Tu disais aussi :
// --------------------------------------------------------------bool ShuttleA::RedrawPanel_EngineIndicator (SURFHANDLE surf){ ... for (i = 0; i < 2; i++) { level = GetThrusterLevel (th_main[i]); th = level*GetThrusterMax (th_main[i]); angle = level * (1.5*PI); dx = rad*cos(angle), dy = rad*sin(angle); MoveToEx (hDC, cntx[i], cnty[0], NULL); LineTo (hDC, cntx[i]-(int)dx, cnty[0]-(int)dy); sprintf (cbuf, "%0.0f", [glow=yellow,2,300]th*1e-3[/glow]); TextOut (hDC, txtx[i], txty0a, cbuf, strlen(cbuf)); sprintf (cbuf, "%0.1f", th/m); TextOut (hDC, txtx[i], txty0b, cbuf, strlen (cbuf));
QuoteMartin prend le level avec GetThrusterLevel(), le multiplie par son MAX_MAIN_THRUST qui est de 193520 (comme moi). Mais moi , je trouve dans ShuttleA.h :Code: [Select]const double MAX_MAIN_THRUST = 2128720.0/2.0;// Main engine thrust [N] per engine
Et avec çà un extrait de la doc SDK2010Code: [Select]double VESSEL::GetThrusterMax ( THRUSTER_HANDLE th ) const Returns the current maximum thrust rating of a thruster. Parameters: th thruster handle Returns:Max. thrust rating a the current atmospheric pressure [N]. Note:[b]If[/b]a pressure-dependent Isp rating [b]has been defined [/b]for the thruster, and if the vessel is moving through a planetary atmosphere, this method returns the maximum thrust rating given the current atmospheric pressure. Otherwise it returns the maximum vacuum thrust rating of the thruster.
double VESSEL::GetThrusterMax ( THRUSTER_HANDLE th ) const Returns the current maximum thrust rating of a thruster. Parameters: th thruster handle Returns:Max. thrust rating a the current atmospheric pressure [N]. Note:[b]If[/b]a pressure-dependent Isp rating [b]has been defined [/b]for the thruster, and if the vessel is moving through a planetary atmosphere, this method returns the maximum thrust rating given the current atmospheric pressure. Otherwise it returns the maximum vacuum thrust rating of the thruster.
ISP selon WIKI :http://fr.wikipedia.org/wiki/Propulsion_spatialeQuoteAfin de pouvoir classer et comparer les différents types de propulsion, un critère de performance a été établi : l'impulsion spécifique. Il est défini par :Isp=F/m*g0où F est la poussée fournie par la propulsion, le débit de matière éjectée et g0 l'accélération due au champ de gravité, supposé constant à proximité de la surface d'une planète.CONCLUSION DU MOMENT :LES RESULTATS VARIENT SELON QUE TU ES EN SITUATION ATMOSPHERIQUE OU PAS .Nous en reparlerons tout à l'heure ...
Oui c'est bien de celle-là que je parlais. Par contre, tu as oublié la partie que j'ai mise en jaune.
sprintf (cbuf, "%0.0f", th*1e-3);
d'ailleurs, Alexandre a tout calculé ça pour moi
WIKI :La règle de trois ou règle de proportionnalité est une méthode mathématique permettant de déterminer l'un des termes d'un tableau de proportionnalité à partir des autres. Elle peut aussi être utilisée pour vérifier qu'un tableau de valeurs satisfait une relation de proportionnalité.Cette règle repose sur l'égalité des produits en croix, qui sont les produits des termes de chaque diagonale dans un tableau de proportionnalité à deux lignes et deux colonnes.
VESSELSTATUS vs; GetStatus(vs); // prend le status du vaisseau mère Local2Rel (_V(-1.65*2, 0, 2.75), vs.rpos); // positionne le vaisseau fille à la bonne position, en utilisant les coordonnées du vaisseau mère vs.vrot.y += 0.25; // Ajoute une rotation lors de la séparation vs.rvel.x += 20; // Ajoute de la vitesse lors de la séparation afin d'avoir une distance sécuritaire oapiCreateVessel (" Test1", "Test", vs); //crée le vaisseau
Il n'y aurait pas une solution avec des fonctions comme Local2Rel() ou Local2Global() ?
Vectors and matrices--------------------------------------------------------------------------------Detailed DescriptionVectors and matrices are used to represent positions, velocities, translations, rotations, etc. in the 3-dimensional object space. Orbiter provides the VECTOR3 and MATRIX3 structures for 3-D vectors and matrices. A number of utility functions allow common operations such as matrix-vector products, dot and vector products, etc. Classes union VECTOR3 3-element vector More... union MATRIX3 3x3-element matrix More... Functions VECTOR3 _V (double x, double y, double z) Vector composition. void veccpy (VECTOR3 &a, const VECTOR3 &b) Vector copy. VECTOR3 operator+ (const VECTOR3 &a, const VECTOR3 &b) Vector addition. VECTOR3 operator- (const VECTOR3 &a, const VECTOR3 &b) Vector subtraction. VECTOR3 operator * (const VECTOR3 &a, const double f) Multiplication of vector with scalar. VECTOR3 operator/ (const VECTOR3 &a, const double f) Division of vector by a scalar. VECTOR3 & operator+= (VECTOR3 &a, const VECTOR3 &b) Vector addition-assignment a += b. VECTOR3 & operator-= (VECTOR3 &a, const VECTOR3 &b) Vector subtraction-assignment a -= b. VECTOR3 & operator *= (VECTOR3 &a, const double f) Vector-scalar multiplication-assignment a *= f. VECTOR3 & operator/= (VECTOR3 &a, const double f) Vector-scalar division-assignment a /= f. VECTOR3 operator- (const VECTOR3 &a) Vector unary minus -a. double dotp (const VECTOR3 &a, const VECTOR3 &b) Scalar (inner, dot) product of two vectors. VECTOR3 crossp (const VECTOR3 &a, const VECTOR3 &b) Vector (cross) product of two vectors. double length (const VECTOR3 &a) Length (L2-norm) of a vector. double dist (const VECTOR3 &a, const VECTOR3 &b) Distance between two points. void normalise (VECTOR3 &a) Normalise a vector. VECTOR3 unit (const VECTOR3 &a) Returns normalised vector. MATRIX3 _M (double m11, double m12, double m13, double m21, double m22, double m23, double m31, double m32, double m33) Matrix composition. MATRIX3 identity () Returns the identity matrix. MATRIX3 outerp (const VECTOR3 &a, const VECTOR3 &b) Outer product of two vectors. MATRIX3 operator+ (const MATRIX3 &A, double s) Sum of matrix and scalar. MATRIX3 operator- (const MATRIX3 &A, double s) Difference of matrix and scalar. MATRIX3 operator * (const MATRIX3 &A, double s) Product of matrix and scalar. MATRIX3 operator/ (const MATRIX3 &A, double s) Quotient of matrix and scalar. MATRIX3 & operator *= (MATRIX3 &A, double s) Matrix-scalar product-assignment A *= s. MATRIX3 & operator/= (MATRIX3 &A, double s) Matrix-scalar division-assignment A /= s. VECTOR3 mul (const MATRIX3 &A, const VECTOR3 &b) Matrix-vector multiplication. VECTOR3 tmul (const MATRIX3 &A, const VECTOR3 &b) Matrix transpose-vector multiplication. MATRIX3 mul (const MATRIX3 &A, const MATRIX3 &B) Matrix-matrix multiplication.