2010-02-27 7 views

Respuesta

2

¿Tal vez el código de proyectos de código abierto podría serlo? Recientemente en FLOSS-Weekly hubo una discusión sobre Stellarium.

Descargo de responsabilidad: No miré esa fuente de Stellarium, así que no tengo idea si es útil en absoluto y, lamentablemente, está escrita en C/C++.

1

Hay una antigua biblioteca C llamada Astrolog que probablemente pueda hacer algunas de las cosas que estás pidiendo. Puede verificarlo aquí: http://www.astrolog.org/astrolog.htm

2

No está en el objetivo C pero la biblioteca incluida en el paquete pyephem es bastante buena. Los archivos fuente C se tomaron del antiguo programa X Windows xephem con pegamento agregado para hacer que las funciones estén disponibles desde dentro de Python. Siempre que no requiera una precisión muy alta, estas rutinas probablemente funcionen para usted.

http://rhodesmill.org/pyephem/

12

recomiendo PJ Naughter de AA+ library. Se basa en el libro de Algoritmos Astronómicos de Meeus. La biblioteca es bastante completa y está escrita en C++ (se llama fácilmente desde Objective-C). Mi aplicación iOS Lúan usa esta biblioteca.

+0

He descargado la biblioteca AA +, pero ¿podría decirme cómo agregar archivos C++ al proyecto XCode iOS? ¡Lo intenté pero me equivoqué con la palabra clave ** class **! – AVEbrahimi

+3

Al integrar AA +, elimine las pruebas ya que contienen una función principal que entrará en conflicto con la principal de su proyecto. cambie el nombre de los archivos obj-c que necesitan referencia al código C++ para que terminen en .mm en lugar de .m. Hacerlo colocará el compilador en el modo objetivo C++ para ese archivo. –

+0

No se puede encontrar el sol y la luna se elevan y se establece es así? –

1

Además de Andrew Hammond, simplemente uso Xcode para descargar el AA. Luego elimino todos los archivos de prueba (AATest.cpp AATest.sin AATest.vcproj) y con una advertencia de Xcode de "Conversión implícita pérdida entera de entero 'largo' a 'int'" en la última línea en nYear/100

CAAEasterDetails CAAEaster::Calculate(long nYear, bool GregorianCalendar) 
{ 
    CAAEasterDetails details; 

    if (GregorianCalendar) 
    {      
    int a = nYear % 19; 
    int b = nYear/100; 

El programa compila bien. Solo compile si el programa es objetivo c pero no si está basado en Swift. Tengo un problema con la macro del pre-procesador AAPLUS_EXT_CLASS.

0

Para aquellos que todavía estén interesados ​​en 2016, he creado un contenedor Objective-C (++) y Swift alrededor de la biblioteca AA + de PJ Naughter. Se basa en el libro astronómico Algoritmos por Jean Meeus y está abierto de código en GitHub:

https://github.com/onekiloparsec/SwiftAA

Cuestiones relacionadas