총 게시물 103건, 최근 0 건
   
점찍기를 사용한 캐드 삼차원 지도 작업의 소스코드
글쓴이 : 이수욱 날짜 : 2004-10-29 (금) 22:22 조회 : 8159
오토캐드를 이용한 별지도를 만드는 중입니다
이것은 단순히 2차원적인 지도가 아니라 3차원입체 우주지도입니다
캐드상에 점을찍어서 140억광년까지 점을 찍어서 점찍기가 완성되어
캐드를 사용해서 위에서 옆에서 아래에서 모든각도에서 볼수가 입습니다
하지만 현재 프래그램 컴파일이 캐드내장프로그램인 베이직에 계속버그가 생겨서
수작업으로 가까운 별과 밝은별을 완성했습니다
누가 이글을 보면 다음의 두개의 소스코드는 캐드상의 베이직으로 짠것입니다
소스코드를 실행하고, 경위도 데이타 입력은 다시 짜야합니다


Sub polarpnt()
Dim polarpnt As Variant
Dim basepnt(0 To 2) As Double
Dim angle1 As Double
Dim angle2 As Double
Dim point0bj As AcadPoint
Dim distance As Variant
basepnt(0) = 0#: basepnt(1) = 0#: basepnt(2) = 0#
pi = 3.141592
angle1 = 60 * pi / 180#
angle2 = 30 * pi / 180#
distance = 100
polarpnt = ThisDrawing.Utility.PolarPoint(basepnt, angle1, distance)

Set point0bj = ThisDrawing.ModelSpace.AddPoint(polarpnt)
Dim distance2 As Variant
distance2 = distance - distance * Cos(angle2)
point0bj.Move distance, distance2
point0bj.Elevation = Sin(angle2)

End Sub

<3d 회전을 이용한 점찍기 소스코드:>
Sub polarpnt()
Dim polarpnt As Variant
Dim basepnt(0 To 2) As Variant
Dim point0bj As AcadPoint
Dim angle As Double
Dim distance As Double
basepnt(0) = 0#: basepnt(1) = 0#: basepnt(2) = 0#
pi=3.141592
angle=60
angle = angle*pi/180#
distance = 100
polarpnt = ThisDrawing.Utility.PolarPoint(basepnt, angle, distance)
Set point0bj = ThisDrawing.ModelSpace.AddPoint(polarpnt)

\' Change the viewing direction of the viewport
Dim NewDirection(0 To 2) As Double
NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1
ThisDrawing.ActiveViewport.direction = NewDirection

ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
ThisDrawing.Regen True

\'3d angle transferring condition
dim c as double
If angle <= 0.5*pi Then<br /> A = 0.5*pi - angle
B = 0.5*pi - A
C = angle + A + B
ElseIf angle <= pi Then<br /> A = pi - angle
B = 0.5*pi - A
C = angle + A + B
ElseIf angle <= 1.5*pi Then<br /> A = 1.5*pi - angle
B = 0.5*pi - A
C = angle + A + B
ElseIf angle <= 2*pi Then<br /> A = 2*pi - angle
B = 0.5*pi - A
C = angle + A + B
End If
Dim axixpnt As Variant
\'define the rotation axis with point

axispnt = ThisDrawing.Utility.PolarPoint(basepnt, C, distance)
set point0bj=thisdrawing.modelspace.polarpoint(axispnt)
basepnt(0) = 0#: basepnt(1) = 0#: basepnt(2) = 0#
basepnt2 = axispnt
Set axisline = ThisDrawing.ModelSpace.AddLine(basepnt, basepnt2)

point0bj.Rotate3d basepnt, basepnt2, angle
ThisDrawing.Regen True

End Sub


지용호 2005-12-15 (목) 00:00
캐드도 이런 소스코드를 넣을 수 있군요.
신기신기... ^^ 베이직이네~
댓글주소
   

총 게시물 103건, 최근 0 건
번호 제목 글쓴이 날짜 조회 추천
 MatriXsLib 1.0 +7 이형철 06-15 21930 670
 MatriXsLib 예제 프로그램을 올립니다. +2 이형철 07-02 9566 32
103  MatriXsLib 1.0 +7 이형철 06-15 21930 670
102  별볼일 있는 세상을 만드는 MatriXs Project +7 지용호 08-21 19072 516
101  MatriXsLib 예제 프로그램을 올립니다. +2 이형철 07-02 9566 32
100  점찍기를 사용한 캐드 삼차원 지도 작업의 소… +1 이수욱 10-29 8160 146
99  matrix2 컴파일 실행 에러 문의입니다. +5 황태욱 01-08 8115 129
98  안녕들하세요~^^ +1 이도원 06-22 7701 137
97  이렇게 좋은 소스가..^^ +2 황태욱 01-07 7351 109
96  요즘 다들 머하시나요? +5 이도원 12-10 7139 122
95  Astronomical Algorithm.. +4 김창환 10-31 7103 122
94  첫모임~~~~ 이도원 06-08 7097 25
93  우리 별자리선 자료 파일 김창환 09-17 7089 47
92  비공개 개시판에 우리 별자리선 자료 파일을 … +2 김창환 09-17 6897 127
91  c 를 공부하다가 +5 이도원 11-13 6790 114
90  프로그램이 돌아가지 않을때 이파일을 받으… +2 이도원 09-16 6784 123
89  침체기 같네요... +3 이도원 09-22 6487 106
 1  2  3  4  5  6  7  맨끝
 
Since 2001.2.7 과학기술정보통신부 등록 비영리민간단체 천문노트. Copyright All rights reserved.
단체명 : 천문노트  |    고유번호 : 101-82-15888  |    대표자명 : 김태욱, 조우성  |    주소 : 138-804 서울특별시 송파구 가락동 93 금강빌딩 7층 710호  |    전화 : 02-543-3295  |    Fax : 02-6918-6888  |    통신판매신고번호 : 종로 제01-5696호  |    개인정보관리책임자 및 사이트관리자 : 지용호