이제 선긋는걸 드디어 했다 ^^
문제는 좌표 -> 점과 점을 이은 선
으로 나타내는 것인데..
그냥 delta가 1인 int 값으로 화면상에 x,y 좌표를 찍으면 그건 잘 보이지도 않는 점 두개 찍는 거나 마찬가지이기 때문에..
(0,0) 과 (0,1)을 이은 선을 그리고 싶다면 실제 증분은 1 이지만 원하는 간격 만큼 임의로 늘려서
거기까지 하나 하나 점을 찍어야 눈에 보이는 선이 될 것이다.
가령 열배를 늘린다면 실제로는 스크린좌표 (0,0)에서 (0,10)까지 점을 열개 찍는게 되는 것이지.
(0,0) (1,1)을 잇는 선분을 10배 늘리면? 10루트 2.
10루트2 / 10 = delta
x += delta
y += delta
언제까지?
10 루트 2 - delta가 0일때까지.
이렇게 하면 돼야 되는데 말이지. 픽셀 찍을 때 쓰는 x,y은 정수값이라 오차가 분명히 있을텐데 어떻게 해야되는걸까?
지금 코드는 계산이 잘못 돼서 픽셀 넣을때 음수가 들어가서 bus error가 나고 있는 것 같다.
다시 해봐야징~!
여튼 해야할 일1 -> 원하는 간격으로 늘려서 원하는 점과 점을 잇는 선분 그리기. 자유자재로.
이거 되고 나면 여러개를 자유자재로 하는 것이 목표다.
+ 방금 해보고 왔는데 10 루트 2에서 delta를 빼야 되는데 걍 1을 빼게 해놔서 그런거였다 ; ㅂㅅ인듯
여튼 대각선도 잘 그려짐 ㅇㅅㅇ
혹은 어차피 계산 과정에서 다 날아가기때문에 늘린 비율에서 1씩 빼도 똑같음 열 배 늘렸다는건 열 번 찍는 다는거니깐~!
'42cursus' 카테고리의 다른 글
fdf 해야할것 4 (0) | 2022.01.23 |
---|---|
fdf 해야할것 3 (0) | 2022.01.19 |
fdf 해야할것 2 (4) | 2022.01.18 |
Wireframe (Wire-frame model)이란? (2) | 2022.01.02 |
va_start(ap, v)에서 두번째 인자 부터 받아오게 되는 이유. (0) | 2021.09.02 |