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, const char *unit, std::function<double(double)> f) {
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 │ unit(s) │ " << setw(12) << s << " │\n";
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(12) << unit << "| " << setw(12) << fixed << f(i);
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", "deg ", d2d);
print(values, "normalized (deg)", d2d);
print(values, "normalized", "grad ", g2g);
print(values, "normalized (grad)", g2g);
print(values, "normalized", "mil ", m2m);
print(values, "normalized (mil)", m2m);
print(values, "normalized", "rad ", r2r);
print(values, "normalized (rad)", r2r);


print(values, "converted", "deg -> grad ", d2g);
print(values, "deg -> grad ", d2g);
print(values, "converted", "deg -> mil ", d2m);
print(values, "deg -> mil ", d2m);
print(values, "converted", "deg -> rad ", d2r);
print(values, "deg -> rad ", d2r);


print(values, "converted", "grad -> deg ", g2d);
print(values, "grad -> deg ", g2d);
print(values, "converted", "grad -> mil ", g2m);
print(values, "grad -> mil ", g2m);
print(values, "converted", "grad -> rad ", g2r);
print(values, "grad -> rad ", g2r);


print(values, "converted", "mil -> deg ", m2d);
print(values, "mil -> deg ", m2d);
print(values, "converted", "mil -> grad ", m2g);
print(values, "mil -> grad ", m2g);
print(values, "converted", "mil -> rad ", m2r);
print(values, "mil -> rad ", m2r);


print(values, "converted", "rad -> deg ", r2d);
print(values, "rad -> deg ", r2d);
print(values, "converted", "rad -> grad ", r2g);
print(values, "rad -> grad ", r2g);
print(values, "converted", "rad -> mil ", r2m);
print(values, "rad -> mil ", r2m);


return 0;
return 0;
}</lang>
}</lang>
{{out}}
{{out}}
<pre>┌─────────────────┬───────────────────┐
<pre>┌─────────────────┬─────────────┬──────────────┐
│ value │ unit(s) │ normalized
│ value │ normalized (deg) │
├─────────────────┼───────────────────┤
├─────────────────┼─────────────┼──────────────┤
│ -2 │ deg | -2 │
│ -2 │ -2 │
│ -1 │ deg | -1 │
│ -1 │ -1 │
│ 0 │ deg | 0 │
│ 0 │ 0 │
│ 1 │ deg | 1 │
│ 1 │ 1 │
│ 2 │ deg | 2 │
│ 2 │ 2 │
│ 6.283185 │ deg | 6.283185 │
│ 6.283185 │ 6.283185 │
│ 16 │ deg | 16 │
│ 16 │ 16 │
│ 57.295780 │ deg | 57.295780 │
│ 57.295780 │ 57.295780 │
│ 359 │ deg | 359 │
│ 359 │ 359 │
│ 399 │ deg | 39 │
│ 399 │ 39 │
│ 6399 │ deg | 279 │
│ 6399 │ 279 │
│ 1000000 │ deg | 280 │
│ 1000000 │ 280 │
└─────────────────┴───────────────────┘
└─────────────────┴─────────────┴──────────────┘
...
...
┌─────────────────┬───────────────────┐
┌─────────────────┬─────────────┬──────────────┐
│ value │ unit(s) converted
│ value │ rad -> mil
├─────────────────┼───────────────────┤
├─────────────────┼─────────────┼──────────────┤
│ -2 │ rad -> mil | -2037.183272 │
│ -2 │ -2037.183272 │
│ -1 │ rad -> mil | -1018.591636 │
│ -1 │ -1018.591636 │
│ 0 │ rad -> mil | 0 │
│ 0 │ 0 │
│ 1 │ rad -> mil | 1018.591636 │
│ 1 │ 1018.591636 │
│ 2 │ rad -> mil | 2037.183272 │
│ 2 │ 2037.183272 │
│ 6.283185 │ rad -> mil | 6399.999993 │
│ 6.283185 │ 6399.999993 │
│ 16 │ rad -> mil | 3497.466173 │
│ 16 │ 3497.466173 │
│ 57.295780 │ rad -> mil | 761.001765 │
│ 57.295780 │ 761.001765 │
│ 359 │ rad -> mil | 874.397248 │
│ 359 │ 874.397248 │
│ 399 │ rad -> mil | 3218.062679 │
│ 399 │ 3218.062679 │
│ 6399 │ rad -> mil | 2767.877408 │
│ 6399 │ 2767.877408 │
│ 1000000 │ rad -> mil | 6035.788130 │
│ 1000000 │ 6035.788130 │
└─────────────────┴───────────────────┘</pre>
└─────────────────┴─────────────┴──────────────┘</pre>


=={{header|Common Lisp}}==
=={{header|Common Lisp}}==