총 게시물 103건, 최근 0 건
   
점찍기를 사용한 캐드 삼차원 지도 작업의 소스코드
글쓴이 : 이수욱 날짜 : 2004-10-29 (금) 22:22 조회 : 7948
오토캐드를 이용한 별지도를 만드는 중입니다
이것은 단순히 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 21595 670
 MatriXsLib 예제 프로그램을 올립니다. +2 이형철 07-02 9142 32
103  안녕들하세요~^^ +1 이도원 06-22 7543 137
102  점찍기를 사용한 캐드 삼차원 지도 작업의 소… +1 이수욱 10-29 7949 146
101  matrix2 컴파일 실행 에러 문의입니다. +5 황태욱 01-08 7935 129
100  이렇게 좋은 소스가..^^ +2 황태욱 01-07 7202 109
99  요즘 다들 머하시나요? +5 이도원 12-10 6995 122
98  c 를 공부하다가 +5 이도원 11-13 6638 114
97  Astronomical Algorithm.. +4 김창환 10-31 6950 122
96  침체기 같네요... +3 이도원 09-22 6354 106
95  비공개 개시판에 우리 별자리선 자료 파일을 … +2 김창환 09-17 6758 127
94  우리 별자리선 자료 파일 김창환 09-17 6947 47
93  [개정]밑에있는 파일 다시올립니다. +1 이도원 09-16 5369 291
92  프로그램이 돌아가지 않을때 이파일을 받으… +2 이도원 09-16 6634 123
91  처음으로 만든 프로그램을 올립니다[시험용] +5 이도원 09-15 5739 126
90  학주형 형철이형 이것좀 고쳐주세요 +2 이도원 09-06 5962 128
89  [하하 잡담] 이로만 가면 좋은데... +3 이도원 09-01 4075 67
 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호  |    개인정보관리책임자 및 사이트관리자 : 지용호