[Draw Line Algorithm] 1. 기본(2) 총정리


[Draw Line Algorithm] 1. 기본(2) 총정리



우선 직선의 방정식은 위와 같다. (공통수학의 정석 554p) 두점 p1 , p2 을 알고 있을때 두점의 방정식이다.
m 은 기울기 이다. 즉 x점과 y점의 변화량이다. 그리고 이 공식에는 x1 과 x2는 같지 않을때 이다.
이때는 값이 무한대가 되거나 에러가 난다. 그래서 적절한 예외 처리를 해주어야 한다.



공식을 적용하여 보면 우선 기본적인 m이 -1보다 크고 1보다 작을때 이다. for 루프로 찍혀질
점(자취) _x의 영역을 잡고 범위 안에서 자취_y를 계산 하여 비트맵 데이터의 점을 찍는다.

이때 직선 방정식의 해의 범위가 실수 인데, 우리가 모니터로 보는 모는 비트맵 영역은 정수
이므로 정수로 타입 케스팅 된다
( 사용하는 언어에 따라 자동으로 타입캐스팅이 안되는 경우가 있다 )

이런 식으로 하나하나의 점이 모여 선이 되는것이다.

그러나 이 방법 대로 코딩을 해보면 특정 영역에서는 선이 이루어 지지 않는 경우가 있다.
예시로는 예전의 글의 데모를 보면 알수 있다 http://scripter.egloos.com/2272309 
특히 p0.x 와 p1.x 가 같아질때는 선이 아에 없어 진다.

그래서 범위를 나누어 처리할 필요가 있다. 
노란색 선은 기울기를 말한다. 기초 수학과 차이점은 원점이 좌측 상단이다 그래서 기초수학과 비교하여
기울기가 서로 반대 이다. (2D 의 경우)

점선은 P0.x 와 P1.x 가 같아질 경우 무한대(+- infinity) 혹은 (ZeroDivisionError) 가 발생할경우 인데 요것 역시  
if 로 처리하여 y= P1.x 꼴로 바꾸면 된다.
영역안에 글자는 if 로 처리할 영역의 조건들이다.

우선 P1을 기준으로 오른쪽은 바로 이전의 그림에서 해결하였다. 그리고 P1의 왼쪽영역은 두점의 예외만 처리하면
된다. 문제는 붉은색 영역이다. 붉은색 영역을 기존의 방법 으로 방정식을 풀면 아래의 그림처럼 나온다. 


for 루프는 _x의 영역만 해당하여 X축 에 해당하는 점은 충실히 찍었으나 위의 그림처럼 _x보다 _y가 클때
 선의 점을 모두 충당하지 못하는 경우가 발생한다. 이유는 아까도 말했드시 비트맵은 정수의 영역이기 때문에.
정수로 처리할수 없는 값이 나오기 때문이다.
이럴경우 점선이 되거나 영역을 벗어 나게 된다. 이는 기울기가 급격해 질수록 간격이 벌어져서 수직이 되면
사라지는 현상이 발생한다

이를 해결하기 위해서는 아래의 그림처럼 ...
X축과 Y축을 90도 돌려서 생각하면 된다. 즉 X성분과 Y성분을 를 서로 바꾸어 생각하면 된다.
유의 할점은 기울기 m 도 x성분과 y성분을 바꾸면 1/m 이 된다. 

위의 구차한? 설명들은 코드로 한방에 생각해 보자
코드를 보면 쉽다.

circle클래스는 단순한 Sprite 에 원을 그리고 글자를 넣은 단순한 클래스 이다.


위의 코드를 컴파일 하면
영역별로 선 색깔을 다르게 했다.

'수학' 카테고리의 다른 글

[Draw Line Algorithm] 1. 기본(2) 총정리  (90) 2010.12.04
[Draw Line Algorithm] 1. 기본(1)  (65) 2010.12.04
[회전변환] 특정좌표를 중심으로 회전변환  (122) 2010.12.04
[삼각함수] 기울어진 그리드의 좌표 구하기  (39) 2010.12.04
정렬  (45) 2010.12.04
atan2 를 "도" 로 환산  (200) 2010.12.04
Yamecoder 야매코더_
수학 2010. 12. 4. 03:40

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. BlogIcon canada goose homme 2014.09.30 03:09  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  3. BlogIcon 匿名 2014.09.30 16:28  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  4. BlogIcon coach factory online 2014.10.14 13:57  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  5. BlogIcon 匿名 2014.10.15 14:41  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  6. BlogIcon 匿名 2014.10.15 14:42  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  7. BlogIcon 匿名 2014.10.15 14:45  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  8. BlogIcon 匿名 2014.10.15 14:46  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  9. BlogIcon 匿名 2014.10.17 12:42  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  10. BlogIcon wholesale Sabres jerseys from china 2014.10.21 15:40  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  11. BlogIcon woolrich donna 2014.10.23 13:50  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  12. 匿名 2014.11.10 17:32  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  13. BlogIcon 眼镜批发市场 2014.11.12 00:51  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  14. BlogIcon moncler donna 2011 2014.11.12 11:44  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  15. BlogIcon RB3025 Sunglasses 2014.11.17 09:04  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  16. BlogIcon hogan rebel 2014.11.20 03:29  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  17. BlogIcon veste moncler femme 2014.11.28 08:27  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  18. 匿名 2015.01.07 17:46  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  19. 匿名 2015.01.15 12:21  수정/삭제  댓글쓰기

    이용약관위배로 관리자 삭제된 댓글입니다.

  20. 匿名 2015.03.01 14:22  수정/삭제  댓글쓰기

    단는大话西游服务端凡人修真服务端大话西游服务端页游服务端问道服务端

    跑跑卡丁车服务端英雄远征服务端幻灵游侠私服务端洪荒神话私服务端

    完美世界服务端烈焰服务端洛汗服务端新魔界服务端绝对女神私服务端


    魔兽私服开区一条龙服务-

    传奇私服开传奇一条龙服务-


    传奇广告代理-

    IDC服务器以及空间租用-

    魔域开区sf一条龙开区服务-


    客服咨询QQ(企鹅扣扣)1325876192

    Email:1325876192@qq.com

    商业版本免费开放下载




    紫川科技最新毁灭天下1.85狂雷独家合击热血复古三职业新装传奇服务端



    紫川科技20星大极品良装+80麒麟锻造中变传奇服务端



    紫川科技独家轻变1.89奥妙转生神龙锻造珍珑元素版传奇服务端



    紫川科技独家九转1.85四皇冠加倍装备特戒龙卫데리

  21. 匿名 2015.04.08 09:20  수정/삭제  댓글쓰기

    일리Lacoste boots and a beret big mesh, or even the entire pleated skirt, tights and wool biker boots. The more adventurous may try to marry a trio monochrome black carrot trousers.



    Badia will be a mini-skirt skater,Android Tablets Compete With the iPad_109959., opaque tights and Minnetonka for a look kindly teenager, as she wants deliciously shifted pair of trousers, sweater and glasses under 수가

Powerd by Tistory, designed by criuce
rss