조회 수 6318 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

 천문 계산에 필요한 수학 함수를 모아놓은 소스코드입니다.
비주얼베이직 6 또는 MS오피스 2000이상의 VBA에서 쓸 수 있습니다.

이 소스코드에는 삼각함수, 삼각함수의 역함수, 상용로그 계산 함수가 포함되어 있습니다.
앞으로 이 게시판에 올라올 천문 계산 프로그램의 코드에 종종 사용됩니다.

각각의 함수에 대한 설명은 추후 올리도록 하겠습니다.

[소스코드]
'상수
Public Const pi As Double = 3.14159265358979
Public Const hpi As Double = pi / 2
Public Const RadtoDeg As Double = 180 / pi
Public Const DegtoRad As Double = pi / 180

'삼각 함수
Public Function Arcsin(ByVal X As Double) As Double
    Arcsin = Atn(X / Sqr(1 - X * X))
End Function

Public Function Arccos(ByVal X As Double) As Double
  If X <= -1 Then
    Arccos = pi
  ElseIf X < 1 And X > -1 Then
    Arccos = hpi - Atn(X / Sqr(1 - X * X))
  Else
    Arccos = 0
  End If
End Function

Public Function Sind(ByVal X As Double) As Double
    Sind = Sin(X * DegtoRad)
End Function

Public Function Cosd(ByVal X As Double) As Double
    Cosd = Cos(X * DegtoRad)
End Function

Public Function Tand(ByVal X As Double) As Double
    Tand = Tan(X * DegtoRad)
End Function

Public Function Arcsind(ByVal X As Double) As Double
    If X >= 1 Then
      Arcsind = 90
    ElseIf X < 1 Then
      Arcsind = RadtoDeg * Atn(X / Sqr(1 - X * X))
    End If
End Function

Public Function Arccosd(ByVal X As Double) As Double
    If X <= -1 Then
      Arccosd = 180
    ElseIf X < 1 And X > -1 Then
      Arccosd = 90 - RadtoDeg * Atn(X / Sqr(1 - X * X))
    Else
      Arccosd = 0
    End If
End Function

Public Function Arctand(ByVal X As Double) As Double
    Arctand = RadtoDeg * Atn(X)
End Function

Public Function Rev(ByVal X As Double) As Double
    Rev = X - Int(X / 360) * 360
End Function

Public Function Arctan2(ByVal Y As Double, ByVal X As Double) As Double
    If X = 0 Then
      If y = 0 Then
        'error
      ElseIf y > 0 Then
        X = hpi
      Else
        X = -hpi
      End If
    Else
      If X > 0 Then
        X = Atn(y / X)
      ElseIf X < 0 Then
        If y >= 0 Then
          X = Atn(y / X) + pi
        Else
          X = Atn(y / X) - pi
        End If
      End If
    End If

    Arctan2 = X
End Function

Public Function Arctan2d(ByVal Y As Double, ByVal X As Double) As Double
    If X = 0 Then
      If y = 0 Then
        'error
      ElseIf y > 0 Then
        X = hpi
      Else
        X = -hpi
      End If
    Else
      If X > 0 Then
        X = Atn(y / X)
      ElseIf X < 0 Then
        If y >= 0 Then
          X = Atn(y / X) + pi
        Else
          X = Atn(y / X) - pi
        End If
      End If
    End If
    Arctan2d = X * RadtoDeg
End Function

Public Function Log10(ByVal X As Double) As Double
    If X < 0 Then X = -X
    Log10 = Log(X) / 2.30258509299405 ' Log(10)=2.30258509299405
End Function

TAG •
?

  1. No Image

    [소스코드]해와 달의 위치 계산(간단한 방법)

    해와 달의 위치 계산에 쓸 수 있는 함수입니다. 가까운 미래나 과거에 한해 비교적 낮은 정밀도로 해와 달의 위치를 계산할 수 있습니다. 비교적 낮은 정밀도라고 해도 실용상으로 쓰기에는 충분한 정확도를 가집니다(일식, 월식, 엄폐 현상의 계산에는 부적...
    Date2009.08.12 Category천문 계산 By창환 Views6829
    Read More
  2. No Image

    [소스코드]천문 계산용 수학 함수 모음 1

    천문 계산에 필요한 수학 함수를 모아놓은 소스코드입니다. 비주얼베이직 6 또는 MS오피스 2000이상의 VBA에서 쓸 수 있습니다. 이 소스코드에는 삼각함수, 삼각함수의 역함수, 상용로그 계산 함수가 포함되어 있습니다. 앞으로 이 게시판에 올라올 천문 계산...
    Date2009.08.12 Category천문 계산 By창환 Views6318
    Read More
  3. No Image

    각도변환문제 : 도(degree), 시(hour), 라디안(radian)

    이 글은 2009년 4월 15일에 지돌스타님이 쓰신 글입니다. 여기서 다루는 문제는 천문 관련 계산할 때 반드시 숙지하고 있어야할 각도 변환에 관련된 것이다. 매우 기초적인 내용이다. 꼭 천문 계산이 아니더라도 수학계산을 위해 이러한 내용은 잘 알고 있어...
    Date2009.08.12 Category천문 계산 By창환 Views12078
    Read More
  4. No Image

    지구의 세차운동(歲差運動, Precession) 계산하기

    이 글은 2009년 4월 14일에 지돌스타님이 쓰신 글입니다. HTML 제한으로 인해 링크만 걸어놓겠습니다. 틀린부분이나 추가사항이 있다면 언제든지 지적해주세요. ^^ 지구의 세차운동(歲差運動, Precession) 계산하기 첨부파일은 간단하게 만들어본 세차운동 계...
    Date2009.08.12 Category천문 계산 By창환 Views5763
    Read More
  5. No Image

    시간에 관해(ΔT)

    이 글은 2009년 4월 10일에 지돌스타님이 쓴 글입니다. 안녕하세요 김창환님. 좋은 프로그램 예전 부터 너무 잘 보고 있고 올라오는 자료도 매우 흥미롭습니다. 질문이 있어서 글을 적습니다. 제가 요즘 천문계산에 대해서 제대로 공부를 하려고 합니다. 명확...
    Date2009.08.12 Category천문 계산 By창환 Views9032
    Read More
  6. No Image

    지구 궤도의 근일점 이동

    지구의 근일점이 이동하는 까닭은 다른 행성의 중력이 지구의 공전에 영향을 미치기 때문입니다. 목성과 같은 커다란 행성이 지구와 가까워지면 지구를 끌어당기면서 공전 속도를 느리게 하거나 빠르게 할 수 있는데, 지구가 받는 이러한 영향은 금성, 화성 등...
    Date2009.08.12 Category천문 계산 By창환 Views7707
    Read More
  7. No Image

    음력-양력 상호 변환 함수 모듈

    음력-양력 상호 변환 함수 모듈 *배포 버전: 1.01 *제작자: 김창환(blueedu@hanmail.net) *홈페이지: http://blueedu.dothome.co.kr *제작일: 2009. 2. 19. *저작권: 이 프로그램의 저작권은 제작자에게 있습니다. *1.0판에 있는 오류를 고친 배포판입니다. 2...
    Date2009.08.12 Category천문 계산 By창환 Views10285
    Read More
  8. No Image

    대기 소광 효과 계산

    대기 소광 효과 계산 1. 대기 소광 효과란? 별빛(해나 달도 마찬가지)은 대기를 통과하면서 공기 중으로 빛이 흡수되거나 산란되어 조금씩 어두워집니다. 이렇게 대기로 인해 별이 어두워지는 현상을 대기 소광 효과라 합니다. 대기 소광은 별의 지평고도가 낮...
    Date2009.08.12 Category천문 계산 By창환 Views11434
    Read More
  9. No Image

    간단한 사용법

    이 게시물은 [소스코드]해, 달, 행성의 위치 계산에 올려놓은 파일의 사용법입니다. 간단한 사용법부터 올립니다. 여기에서 설명한 천체의 위치는 모두 황도좌표계로 나타낸 값입니다. (1) 해의 위치 계산 이 함수는 해의 지구중심 좌표를 출력합니다. Private...
    Date2009.08.12 Category천문 계산 By창환 Views4922
    Read More
  10. No Image

    [소스코드]해, 달, 행성의 위치 계산

    해와 달, 주요 행성(수성, 금성, 화성, 목성, 토성, 천왕성, 해왕성, 명왕성)의 위치를 구하는 프로그램 소스코드입니다. 케플러 방정식을 푸는 고전적인 방식으로 주요 천체의 위치를 계산합니다. 정밀도는 황경 방향으로 10초, 황위 방향으로 4초 이내라고 ...
    Date2009.08.12 Category천문 계산 By창환 Views7424
    Read More
Board Pagination Prev 1 ... 12 13 14 15 16 17 18 19 20 21 Next
/ 21
Powered by XE