profile
software engineer for over 23 years in engineering field.
post-thumbnail

평면 상의 점 구하기

S3D는 민감한것 같습니다. 조그마한 오차도 허용하지 않고 형상을 만들지 못하겠다고 튕겨버립니다.그림에서와 같이 사선 방향으로 Extrude하는 형상을 만들때 단면을 이루는 점들이 하나의 평면상에 있지 않으면 형상을 만들지 못합니다.(’범위를 벗어났다’나 뭐 그런 오류

2023년 6월 13일
·
0개의 댓글
·
post-thumbnail

Ellipse의 Start, End Point 구하기

포맷마다 프리미티브를 정의하는 것이 달라 데이터 교환을 위해서 프리미티브 변환을 해줘야 합니다.Ellipse는 아래와 같이 정의할 수 있습니다.($\\alpha$=시작 각도, $\\beta$=회전 각도)위 그림에서 Ellipse상의 점 $A$는 아래 식으로 구할 수 있

2023년 6월 12일
·
0개의 댓글
·

Class를 Json으로 저장

JsonConverter.Serialize를 사용하면 Class를 Json으로 변환할 수 있습니다.하지만 Json으로 변환할때 Class를 명시해줘야 하기때문에 아래와 같은 경우는 처리하기가 어렵습니다.위와 같은 코드는 상속받는 클래스가 늘어나면 해당 코드를 변경해야

2023년 5월 9일
·
0개의 댓글
·
post-thumbnail

PCF 파일 뷰어 제작

PCF 파일은 배관 스풀의 정보를 가지는 텍스트 파일입니다.아주 단순한 구조를 가지고 있기 때문에 내용을 파악하기 쉽습니다.파이프의 경우 양 끝점과 BORE 사이즈를 가지고 있기 때문에 쉽게 3D을 생성할 수 있습니다.ELBOW의 경우에는 3D 형상을 그리기위해 몇가지

2023년 4월 13일
·
0개의 댓글
·
post-thumbnail

사용자 설정값 유지

윈폼 프로그램에서 필요한 정보를 사용자 설정(Properties.Settings.Default)에 저장하여 프로그램 종료 후에도 사용할 수 있도록 합니다.손쉽게 정보들을 사용자 설정에 저장하여 사용할 수 있는데, 프로그램이 업데이트(버전 정보 변경)되면 이러한 정보들이

2023년 4월 5일
·
0개의 댓글
·

명령행으로 웹서비스 배포하기

웹서비스를 단위 테스트하기 위하여 명령행으로 웹서비스를 배포하도록 작성했습니다.일반적인 단위 테스트트는 프로젝트는 참조하여 테스트를 진행하면 되지만웹서비스의 경우에는 먼저 서비스가 웹서버에 배포되어야 하는데수작업으로 웹서버에 배포를 해야한다면 단위 테스트를 자동화할수

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

선분과 직선과의 거리

선분(S-E)와 점 P와의 거리를 구해보도록 합시다.우선 두개의 벡터를 구할 수 있습니다.$V_1 = \\overrightarrow{P-S} \\ V_2 = \\overrightarrow{E-S} \\ \\vec{V_1}\\cdot\\vec{V_2} = |\\vec{

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

3D 평면 상의 점들을 2D로 변환

3D 평면상의 점들을 2D로 변환하는 방법에 대해서 알아보도록 하자.지금 개발하고 있는 2D상의 점들을 삼각화 시키는 루틴이 있는데 이 루틴을 3D 평면상의 점들에 대해서 적용시키기 위해서 3D 평면상의 점들을 2D로 변환시키는 방법이 필요하다.3D 평면을 X-Y 평면

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

두 직선의 교점 구하기

2D상의 A,B를 지나는 직선과 C,D를 지나는 직선의 교점을 구하는 방정식을 구해보도록 하자.$$\\begin{aligned}l_1 = A + (B - A)\\times t_1\\l_2 = C + (D - C)\\times t_2\\A+(B-A)\\times t_1

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

임의의 축에 대한 회전 #1

임의의 축 $\\vec{A}$는 X , Y ,Z 에 대한 요소를 가지고 있을 것이다. $\\vec{A}$ 의 X , Y , Z 요소 중 나머지 두 요소를 제거하여 하나만 남긴다면 위에서 알아본 회전 변환에 대한 행렬식을 그대로 쓸 수가 있을 것이다. 그럼 문제는 어떻

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

두 벡터사이의 각도

벡터 사이의 각도는 아래의 식으로 계산이 가능합니다.$$a = acos(\\vec{A}\\cdot\\vec{B} / |\\vec{A}||\\vec{B}|) , (0 <= a <= 180)$$ 각도의 부호 판별 $\\vec{A}$를 $\\vec{Z}$에 맞추

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

점이 직선의 어느 편에 있는가?

가끔씩 프로그래밍을 하다 보면 POINT가 직선의 어느 편에 존재하는지 판단해야 할 경우가 생긴다.직선의 시작점에서 끝점을 바라본다고 생각하면 왼쪽에 있는 POINT는 $E\\to S$와 $LHS\\to S$의 외적의 값은 양의 수가 되고 오른쪽에 있는 POINT가

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

White Space 검색

아래와 같이 주어진 도면에 Label을 도면 상의 다른 객체들과 겹쳐지지 않게 배치하고자 할때 White Space 검색이 필요합니다.먼저 도면의 모든 객체들을 포함하는 Bounding Box를 구합니다.이 Bounding Box 안에 Label을 배치한다고 가정하겠습

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

선분의 중점 구하기

점 으로 이루어진 선분의 중점은 $(P_1 + P_2)/2$입니다.어 이게 맞나? 생각할지도 모르겠습니다.$P_1, P_2$맞는지 한번 확인해 보도록 하겠습니다.로 이루어진 선분은 다음과 같이 표현이 가능합니다.식으로는 아래와 같이 표현할 수 있습니다.$$L = P_1

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

두 Graph 비교

브랜치가 포함된 두 배관 라인을 비교하는 방법입니다.아래와 같이 두 배관 라인이 존재할때 바뀐 부분을 찾는 로직입니다.이 두 라인을 비교하기 위해 문자열 diff 알고리즘을 적용할 수 있습니다.먼저 라인을 구성하는 항목들을 코드화 시킵니다.두 라인을 문자열로 표현하면$

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

임의의 축에 대한 회전 #2

임의의 축에 대한 회전에 대한 2번째입니다.첫번째 보다 간단합니다.그림에서처럼 임의의 축 $\\vec{n}$에 대해서 $\\vec{r}$이 가리키는 점을 $\\theta$만큼 회전을 시키는 경우를 생각해봅시다.$\\vec{r}$은 $\\vec{n}$ 수직인 성분($\\

2023년 3월 25일
·
0개의 댓글
·

평면과 직선의 교점 구하기

S와 E는 서로 평면의 반대편에 있어야 교점이 존재하게 됩니다.교점 C는 직선의 방정식인 $S + t(E - S)$로 표현됩니다.또한 C는 평면 상의 점이 되므로 $\\vec{N}C + d = 0$을 만족합니다.첫번째 식을 두번째 식에 대입하면,$\\begin{alig

2023년 3월 25일
·
0개의 댓글
·

Host 어플리케이션과 AutoCAD 플러그인의 상호 연동

AutoCAD 플러그인을 개발하면서 항상 고민이 되는 부분이어떻게 Host 어플리케이션과 연동하는냐하는 문제였습니다.초기에는 윈도위 API인 SendMessage를 이용하여 서로 데이타를 주고 받도록 디자인을 했었는데 뭔가 밀접하게 연결이 되어 있지 않다는 느낌이 강했

2023년 3월 25일
·
0개의 댓글
·
post-thumbnail

How to create annimated gif file by using giflib

iflib을 사용해서 annimated gif 파일을 만드는 법을 알아보도록 하겠습니다.giflib은 여기서 다운 받을수 있습니다.(http://sourceforge.net/projects/giflib/)인터넷 상에서 gif file format은 검색해서 한

2023년 3월 25일
·
0개의 댓글
·

256 색상 Bitmap 파일 쓰기

가끔씩 그래픽 데이터를 파일로 저장할 필요가 있는데,기존의 알려진 Graphic Library를 사용할려니 약간 부담이 될때간단히 사용할수 있도록 256 색상의 BMP 파일로 저장하는 루틴입니다.

2023년 3월 25일
·
0개의 댓글
·