Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $input = <<<END
- 4
- 2 2.0
- 36.2 50.00000
- 14.5 30
- -4 2
- END;
- //Why so many spaces, bro?
- $input = explode("\n", $input);
- array_shift($input);
- foreach($input as $key => $value){
- $value = preg_replace("#[ ]+#", ' ', $value); //bloody spaces
- $input[$key] = explode(" ", $value);
- }
- foreach($input as $key => $value){
- /*
- $value[0] = radius
- $value[1] = chord length
- */
- $break = 0;
- $out_r = str_pad(number_format($value[0], 4, '.', ''), 8, ' ', STR_PAD_LEFT);
- $out_c = str_pad(number_format($value[1], 4, '.', ''), 8, ' ', STR_PAD_LEFT);
- if($value[0] < 0){
- //report "Radius is non-positive"
- echo $out_r.' '.$out_c." Radius is non-positive\n";
- $break = 1;
- }
- if(!($value[1] < 2*$value[0]) && $break == 0){
- //report "Chord is too long"
- echo $out_r.' '.$out_c." Chord is too long\n";
- $break = 1;
- }
- if($break == 0){
- $a = sqrt(pow($value[0], 2) - pow(($value[1]/2), 2));
- $s = $value[0] - $a;
- $angle = 2*rad2deg(asin($value[1]/(2*$value[0])));
- $out_s = str_pad(number_format($s, 4, '.', ''), 9, ' ', STR_PAD_LEFT);
- $out_a = str_pad(number_format($angle, 4, '.', ''), 9, ' ', STR_PAD_LEFT);
- echo $out_r.' '.$out_c.' s ='.$out_s.' angle ='.$out_a."\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment