Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Angles (Radians/Degrees) #5

Closed
brendanzab opened this issue Dec 2, 2015 · 10 comments
Closed

Angles (Radians/Degrees) #5

brendanzab opened this issue Dec 2, 2015 · 10 comments

Comments

@brendanzab
Copy link

Should these be in a separate crate? I would like to derive the Radians unit from SI (m * m^-1), and have a conversion to/from Degrees. Then also make trigonometry functions with the correct units, as I do in cgmath::angle.

@droundy
Copy link
Contributor

droundy commented Dec 2, 2015

Radians should be dimensionless, which is likely to cause trouble with tracking them in terms of units.

@paholg
Copy link
Owner

paholg commented Dec 2, 2015

Is there a problem with doing something like this?

make_units! {
    Angles, Unitless, one;
    base {
        Degree, degree, °;
    }
}

Then you have degrees and can use Unitless for radians. Using the SI system with 1 radian = m * m^-1 gives you the same thing for radians.

You can also add on any other units you would like to use.

@brendanzab
Copy link
Author

Oh cool. I'll start working on the library now if that's ok.

What does Unitless do?

@paholg
Copy link
Owner

paholg commented Dec 2, 2015

It's the type for something with no units. Say you run

make_units! {
    MS, Unitless, one;
    base {
        Meter, m, m;
        Second, s, s;
    }
}

Then you've created the MS type with units Meter and Second. But these are really aliases, where Meter is MS<P1, Z0> and Second is MS<Z0, P1>. Then, Unitless is MS<Z0, Z0> where P1 is the type for the number 1 and ZO is the type for the number 0.

There are some tutorials for using dimensioned here: http://paholg.com/project/dimensioned/

@brendanzab
Copy link
Author

@droundy What do you mean by 'Radians should be dimensionless'? Is what I am saying not possible?

@droundy
Copy link
Contributor

droundy commented Dec 2, 2015

I just mean that radians have no units. It's the name for a dimensionless
quantity. In this sense degrees are analogous to dozens or miles, it's a
kind of a unit for things that are pure numbers, which don't actually have
dimension. This sort of "unit" is tricky, because it is kind of like
units, but doesn't work with the same kind of checking that we can use for
real dimensions.

Of course, if you don't want to actually do math, you can define angle as a
dimension without trouble, and then radians and degrees will both be
dimensions. The problem arises, for instance, when you want to find an
angle from the ratio of an arc length and a radius, or to write use the
first few terms in the Taylor expansion of a trig function. Or if you want
to integrate over the surface of a sphere.

On Wed, Dec 2, 2015, 6:30 PM Brendan Zabarauskas notifications@github.com
wrote:

@droundy https://github.com/droundy What do you mean by 'Radians should
be dimensionless'? Is what I am saying not possible?


Reply to this email directly or view it on GitHub
#5 (comment).

@brendanzab
Copy link
Author

Hmm. It is really nice for documentation though, and picks up errors nicely if you mess up. Do you think dimensioned is overkill for this then?

@droundy
Copy link
Contributor

droundy commented Dec 3, 2015

I would find dimensioned to be overkill if all you want is to document that
you are taking degrees as input.

On Wed, Dec 2, 2015 at 7:01 PM Brendan Zabarauskas notifications@github.com
wrote:

Hmm. It is really nice for documentation though, and picks up errors
nicely if you mess up. Do you think dimensioned is overkill for this then?


Reply to this email directly or view it on GitHub
#5 (comment).

@paholg
Copy link
Owner

paholg commented Dec 29, 2015

I am going to consider this closed. Feel free to re-open it if you have further questions, @bjz.

@paholg paholg closed this as completed Dec 29, 2015
@brendanzab
Copy link
Author

👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants