Angles (geometric), normalization and conversion: Difference between revisions
Content added Content deleted
(→{{header|C++}}: Boost used) |
(→{{header|C++}}: new formatting) |
||
Line 434: | Line 434: | ||
double r2m(double a) { return m2m(a * 3200 / M_PI); } |
double r2m(double a) { return m2m(a * 3200 / M_PI); } |
||
void print(const std::vector<double> &values, const char *s |
void print(const std::vector<double> &values, const char *s, std::function<double(double)> f) { |
||
using namespace std; |
using namespace std; |
||
ostringstream out; |
ostringstream out; |
||
out << "┌─────────────────┬───────────────────┐\n"; |
|||
out << "┌─────────────────┬─────────────┬──────────────┐\n"; |
|||
out << "│ value |
out << "│ value │ " << setw(17) << s << " │\n"; |
||
out << "├─────────────────┼───────────────────┤\n"; |
|||
out << "├─────────────────┼─────────────┼──────────────┤\n"; |
|||
for (double i : values) { |
for (double i : values) { |
||
out << "│ " << setw(15); |
out << "│ " << setw(15); |
||
out << fixed << i << defaultfloat << " │ " << setw( |
out << fixed << i << defaultfloat << " │ " << setw(17) << fixed << f(i); |
||
out << defaultfloat << " │\n"; |
out << defaultfloat << " │\n"; |
||
} |
} |
||
out << "└─────────────────┴───────────────────┘\n"; |
|||
out << "└─────────────────┴─────────────┴──────────────┘\n"; |
|||
auto str = out.str(); |
auto str = out.str(); |
||
boost::algorithm::replace_all(str, ".000000", " "); |
boost::algorithm::replace_all(str, ".000000", " "); |
||
Line 453: | Line 453: | ||
int main() { |
int main() { |
||
std::vector<double> values = { -2, -1, 0, 1, 2, 6.2831853, 16, 57.2957795, 359, 399, 6399, 1000000 }; |
std::vector<double> values = { -2, -1, 0, 1, 2, 6.2831853, 16, 57.2957795, 359, 399, 6399, 1000000 }; |
||
print(values, "normalized |
print(values, "normalized (deg)", d2d); |
||
print(values, "normalized |
print(values, "normalized (grad)", g2g); |
||
print(values, "normalized |
print(values, "normalized (mil)", m2m); |
||
print(values, "normalized |
print(values, "normalized (rad)", r2r); |
||
print(values |
print(values, "deg -> grad ", d2g); |
||
print(values |
print(values, "deg -> mil ", d2m); |
||
print(values |
print(values, "deg -> rad ", d2r); |
||
print(values |
print(values, "grad -> deg ", g2d); |
||
print(values |
print(values, "grad -> mil ", g2m); |
||
print(values |
print(values, "grad -> rad ", g2r); |
||
print(values |
print(values, "mil -> deg ", m2d); |
||
print(values |
print(values, "mil -> grad ", m2g); |
||
print(values |
print(values, "mil -> rad ", m2r); |
||
print(values |
print(values, "rad -> deg ", r2d); |
||
print(values |
print(values, "rad -> grad ", r2g); |
||
print(values |
print(values, "rad -> mil ", r2m); |
||
return 0; |
return 0; |
||
}</lang> |
}</lang> |
||
{{out}} |
{{out}} |
||
<pre>┌─────────────────┬───────────────────┐ |
|||
<pre>┌─────────────────┬─────────────┬──────────────┐ |
|||
│ value │ |
│ value │ normalized (deg) │ |
||
├─────────────────┼───────────────────┤ |
|||
├─────────────────┼─────────────┼──────────────┤ |
|||
│ -2 │ |
│ -2 │ -2 │ |
||
│ -1 │ |
│ -1 │ -1 │ |
||
│ 0 │ |
│ 0 │ 0 │ |
||
│ 1 │ |
│ 1 │ 1 │ |
||
│ 2 │ |
│ 2 │ 2 │ |
||
│ 6.283185 │ |
│ 6.283185 │ 6.283185 │ |
||
│ 16 │ |
│ 16 │ 16 │ |
||
│ 57.295780 │ |
│ 57.295780 │ 57.295780 │ |
||
│ 359 │ |
│ 359 │ 359 │ |
||
│ 399 │ |
│ 399 │ 39 │ |
||
│ 6399 │ |
│ 6399 │ 279 │ |
||
│ 1000000 │ |
│ 1000000 │ 280 │ |
||
└─────────────────┴───────────────────┘ |
|||
└─────────────────┴─────────────┴──────────────┘ |
|||
... |
... |
||
┌─────────────────┬───────────────────┐ |
|||
┌─────────────────┬─────────────┬──────────────┐ |
|||
│ value │ |
│ value │ rad -> mil │ |
||
├─────────────────┼───────────────────┤ |
|||
├─────────────────┼─────────────┼──────────────┤ |
|||
│ -2 │ |
│ -2 │ -2037.183272 │ |
||
│ -1 │ |
│ -1 │ -1018.591636 │ |
||
│ 0 │ |
│ 0 │ 0 │ |
||
│ 1 │ |
│ 1 │ 1018.591636 │ |
||
│ 2 │ |
│ 2 │ 2037.183272 │ |
||
│ 6.283185 │ |
│ 6.283185 │ 6399.999993 │ |
||
│ 16 │ |
│ 16 │ 3497.466173 │ |
||
│ 57.295780 │ |
│ 57.295780 │ 761.001765 │ |
||
│ 359 │ |
│ 359 │ 874.397248 │ |
||
│ 399 │ |
│ 399 │ 3218.062679 │ |
||
│ 6399 │ |
│ 6399 │ 2767.877408 │ |
||
│ 1000000 │ |
│ 1000000 │ 6035.788130 │ |
||
└─────────────────┴───────────────────┘</pre> |
|||
└─────────────────┴─────────────┴──────────────┘</pre> |
|||
=={{header|Common Lisp}}== |
=={{header|Common Lisp}}== |