fdf 해야할것 2
이제 두 점을 잇는건 할 수 있다.
근데 맵파일 보면 알겠지만 개~많은 점들을 다 이어야 한다는 것..
선을 그리는 것 자체는 O(n) 이다. 반복문 하나만 돌리면 된다.
10000n, 100000n이 돼도 연산 수행 속도에 유의한 차이가 없는지 일단 알아봐야겠다.
그리고 좌표를 순차적으로 다 잇는 것이기 때문에 iterator에 좌표 인덱스를 주면 될 것 같다.
근데?! 생각 해보면 결과물은 어떤 점과 점을 잇는다기 보다 3차원 -> 2차원으로 나타낸 좌표를
그저 화면에 찍는 것일 뿐인데..
내가 생각한 로직의 순서는 이렇다.
어떤 임의의 좌표계에 x,y,z 점들의 집합이 있다.
이 좌표계를 isometric view로 바라보는 좌표계를 구한다. (origin 좌표계 회전, 이동 행렬을 구한다)
그러면 isometric 좌표계 입장에서의 새로운 x,y,z가 나온다.
이걸 2D 화면에다 project 시킨다.
근데 말했지만 그냥 좌표 자체를 찍어서는 안되고 늘려서 여러번 찍어야함. 그러기만 하면 되는걸까?
1. 임의로 (0,0) (0,1) (0,2) (0,3) (0,4) (0,5) , ..., (0,10)을 만들어서 전부 행렬 연산으로 변환한다.
그럼 새로운 좌표 열개가 나온다.
이걸 한개씩 찍는다.
2. 실제 좌표 (0,0) (0,1)을 변환한다.
그럼 새로운 좌표가 나온다.
이걸 임의로 늘려서 잇는다.
아마 2번이 맞는 것 같은데 한번 해보고옴. 그러려면 행렬 연산도 구현해야겠지?
해야할일2
- 4x4랑 4x1 행렬 계산하는 코드 만들기.
- 2D로 project 계산하는 코드 만들기.
- 점 두개로 1번 방법 2번 방법 해보기.
그리고 그래프도 적용할 수 있나 한번 생각 해봐야겠다. 구조는 딱 그래프 구조라ㅋ 이 좌표들을 엣지와 버텍스를 갖는 자료구조로 표현했을 때 더 효과적인지를 한번 고민 해봐야겠당 ~! 아마 어떤 점이 어떤 점이랑 연결 돼있는지 나타 내놓으면 좌표 변환이 되더라도 이어져 있는 상태는 변함이 없는거니까.. 적절하지 않을까.. 예상만 해봄.