2012-04-04 2 views
-1

배열이 있습니다 : int [] [] lawn = new int [980] [1280]; 가상 "잔디밭"에 블레이드 높이 값을 저장합니다.이동하는 cicrle의 모든 데카르트 점 계산하기

내 시뮬레이션에는 잔디밭을 돌아 다니며 블레이드를 자르는 로봇이 있습니다.

내 로봇의 지름 (rDiameter)은 원 모양입니다. 좌표계는 Double로하고 내 잔디는 정수에 있습니다.

주위를 이동할 때 로봇이 접촉 한 모든 셀을 0으로 만드는 알고리즘을 개발해야합니다.

나는 운동의 시작점과 끝점을 가지며 Line2D.Double 폼에 저장되어 있으며 로봇 (이미지)이 접촉 한 모든 셀을 0으로 설정하려고합니다. 아이디어가 있으십니까?

은 (여기에 같은 인수에 내 앞의 질문은 every cartesian point in a circle

+1

당신은 브러쉬 알고리즘을 설명합니다. –

+0

이전 질문의 답을 적용하여 서클의 모든 점을 찾은 다음 0이나 원하는대로 설정하십시오. 아니면 다른 사람이 당신을 위해 모든 코드를 수행하기를 원하십니까? ] – davidfrancis

+0

아니 ... 그것은 작동하지 않습니다, 동그라미와 함께 당신이 덮여 있지 않은 두 동그라미 사이에 작은 반점을 얻을 ... – Seafire37

답변

0
는 3 개 부분으로 문제를 휴식

. 제 1 반 원 0 모든 포인트를 설정하는 것입니다. 제 2 부 모든 점에서 0으로 설정하는 것입니다 파트 3은 경로를 두 개의 반원 (끝에)과 직사각형 (결합)으로 구분합니다.

반원과 직사각형은 일반적으로 폴리곤과 원을 래스터 화하는 것에 대한 많은 참고 자료가 있습니다 .Bresenham의 알고리즘을 살펴 보거나 고전적인 컴퓨터 그래픽 텍스트를 열 수 있습니다.

+0

고마워, 당신의 생각을 좋아해, 그것에 대해 자신을 생각하지만 didn 거기에 알고리즘이 어디에 있는지 알 수 없습니다. 잭 Bresenham 알고리즘은 괜찮아 보인다, 그것을 시도합니다! – Seafire37

+0

그는 원과 선 모두 알고리즘을 사용했다. – DRVic

+0

예 주목! 감사 – Seafire37