Zeigervariante
Code:
void setup() {
Serial.begin (250000); // diese Buadrate muss auch in der Konsole (Serieller Monitor) eingestellt sein
while (!Serial);
}
void loop() {
float xyz;
Serial.print ("lzahn2 = ");
Serial.println (lzahn2Prog (213.56994, 57.56108, &xyz )); // Druckt Ergebnis des UPs
Serial.println (xyz); // Druckt xyz
delay(2000);
}
// **************************************Unterprogramm lzahn2Prog *******************************
float lzahn2Prog ( float x1, float y1, float* W4) {
float P0_P1 = sqrt(pow(x1, 2) + pow(y1, 2)); //Gerade P0-P1
float CosinusW4 = (114196.0 - pow(P0_P1, 2)) / 102960.0;
*W4 = acos(CosinusW4); // = W4 im Bogenmaß
float lzahn2 = sqrt( 21164.49 - cos (*W4 + 0.09180432) * 20574.0 );
return lzahn2; // die Ausgabe erfolgt in mm
}
Referenzvariante
Code:
void setup() {
Serial.begin (250000); // diese Buadrate muss auch in der Konsole (Serieller Monitor) eingestellt sein
while (!Serial);
}
void loop() {
float xyz;
Serial.print ("lzahn2 = ");
Serial.println (lzahn2Prog (213.56994, 57.56108, xyz )); // Druckt Ergebnis des UPs
Serial.println (xyz); // Druckt xyz
delay(2000);
}
// **************************************Unterprogramm lzahn2Prog *******************************
float lzahn2Prog ( float x1, float y1, float& W4) {
float P0_P1 = sqrt(pow(x1, 2) + pow(y1, 2)); //Gerade P0-P1
float CosinusW4 = (114196.0 - pow(P0_P1, 2)) / 102960.0;
W4 = acos(CosinusW4); // = W4 im Bogenmaß
float lzahn2 = sqrt( 21164.49 - cos (W4 + 0.09180432) * 20574.0 );
return lzahn2; // die Ausgabe erfolgt in mm
}
Lesezeichen