kingsznhone / VSOP2013.NET

VSOP2013 Library For .NET. (NuGet, DLL) Highly Optimized and OOP
https://ftp.imcce.fr/pub/ephem/planets/vsop2013/
MIT License
6 stars 1 forks source link

ask #7

Closed hasanelfalakiy closed 3 months ago

hasanelfalakiy commented 3 months ago

Are the positions of the sun and moon also using vsop2013? Because I saw that other repos still use vsop87 for the sun and moon, while for the planets and stars using vsop2013

kingsznhone commented 3 months ago

In VSOP2013, there is only a body called Earth moon body(EMB), represent mass center of earth and moon. No moon body or earth body. vsop87 also don't have moon body. I think some repo add elp82 solution for moon

hasanelfalakiy commented 3 months ago

really?, I am used to calculating the position of the sun with VSOP87D and to calculate the position of the moon using ELPMPP02

kingsznhone commented 3 months ago

Sun's coordinate in 87D and 2013 is always (0,0,0), check your version ELPMPP02 is a improvement of ELP82

This code segment is original vsop87 solution version-body relationship

public static List<VSOPBody> ListAvailableBody(VSOPVersion ver) => ver switch
        {
            VSOPVersion.VSOP87 => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        VSOPBody.EMB }),

            VSOPVersion.VSOP87A => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        VSOPBody.EMB }),

            VSOPVersion.VSOP87B => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87C => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87D => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87E => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.SUN,
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            _ => new List<VSOPBody>()
        };

VSOP2013 contains these body :

 public enum VSOPBody
    {
        MERCURY = 0,
        VENUS = 1,
        EMB = 2,
        MARS = 3,
        JUPITER = 4,
        SATURN = 5,
        URANUS = 6,
        NEPTUNE = 7,
        PLUTO = 8
    }
hasanelfalakiy commented 3 months ago

Sun's coordinate in 87D and 2013 is always (0,0,0), check your version ELPMPP02 is a improvement of ELP82

This code segment is original vsop87 solution version-body relationship

public static List<VSOPBody> ListAvailableBody(VSOPVersion ver) => ver switch
        {
            VSOPVersion.VSOP87 => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        VSOPBody.EMB }),

            VSOPVersion.VSOP87A => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        VSOPBody.EMB }),

            VSOPVersion.VSOP87B => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87C => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87D => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87E => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.SUN,
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            _ => new List<VSOPBody>()
        };

VSOP2013 contains these body :

 public enum VSOPBody
    {
        MERCURY = 0,
        VENUS = 1,
        EMB = 2,
        MARS = 3,
        JUPITER = 4,
        SATURN = 5,
        URANUS = 6,
        NEPTUNE = 7,
        PLUTO = 8
    }

I think I should learn .NET language first, okay, how can I test and run your software?

hasanelfalakiy commented 3 months ago

Sun's coordinate in 87D and 2013 is always (0,0,0), check your version ELPMPP02 is a improvement of ELP82

This code segment is original vsop87 solution version-body relationship

public static List<VSOPBody> ListAvailableBody(VSOPVersion ver) => ver switch
        {
            VSOPVersion.VSOP87 => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        VSOPBody.EMB }),

            VSOPVersion.VSOP87A => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        VSOPBody.EMB }),

            VSOPVersion.VSOP87B => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87C => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87D => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87E => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.SUN,
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            _ => new List<VSOPBody>()
        };

VSOP2013 contains these body :

 public enum VSOPBody
    {
        MERCURY = 0,
        VENUS = 1,
        EMB = 2,
        MARS = 3,
        JUPITER = 4,
        SATURN = 5,
        URANUS = 6,
        NEPTUNE = 7,
        PLUTO = 8
    }

https://github.com/hasanelfalakiy/hisab-astronomis/tree/master/src%2Fmain%2Fkotlin%2Fid%2For%2Fpersis%2Fdhr%2Fhisabastronomis%2FislamicTimes

I usually use kotlin

hasanelfalakiy commented 3 months ago

Sun's coordinate in 87D and 2013 is always (0,0,0), check your version ELPMPP02 is a improvement of ELP82

This code segment is original vsop87 solution version-body relationship

public static List<VSOPBody> ListAvailableBody(VSOPVersion ver) => ver switch
        {
            VSOPVersion.VSOP87 => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        VSOPBody.EMB }),

            VSOPVersion.VSOP87A => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        VSOPBody.EMB }),

            VSOPVersion.VSOP87B => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87C => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87D => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            VSOPVersion.VSOP87E => new List<VSOPBody>(new VSOPBody[] {
                        VSOPBody.SUN,
                        VSOPBody.MERCURY,
                        VSOPBody.VENUS,
                        VSOPBody.EARTH,
                        VSOPBody.MARS,
                        VSOPBody.JUPITER,
                        VSOPBody.SATURN,
                        VSOPBody.URANUS,
                        VSOPBody.NEPTUNE,
                        }),

            _ => new List<VSOPBody>()
        };

VSOP2013 contains these body :

 public enum VSOPBody
    {
        MERCURY = 0,
        VENUS = 1,
        EMB = 2,
        MARS = 3,
        JUPITER = 4,
        SATURN = 5,
        URANUS = 6,
        NEPTUNE = 7,
        PLUTO = 8
    }

https://github.com/hasanelfalakiy/hisab-astronomis/tree/master/src%2Fmain%2Fkotlin%2Fid%2For%2Fpersis%2Fdhr%2Fhisabastronomis%2FislamicTimes

I usually use kotlin, VSOP87D & ELPMPP02 inside it

kingsznhone commented 3 months ago

All you need is install visual studio 2022. Then clone repo and open it. https://kingsznhone.gitbook.io/vsop2013.net/vsop2013.net/quick-start

hasanelfalakiy commented 3 months ago

All you need is install visual studio 2022. Then clone repo and open it. https://kingsznhone.gitbook.io/vsop2013.net/vsop2013.net/quick-start

ok, thanks,,