JAVA_School/JAVA_School_class

[0412] 패턴중심적사고와프로그래밍

지윤이다 2023. 4. 12. 14:44

진행

* polygon 그리기

- user Input

-> N Points

-> 

- Shape

 

마지막 점을 그릴 때 사용자가 그 점을 어느 위치에 정할까를 보기 위해 애니메이션을 본다. 지금 polygon은 user Input이 n point, 즉 점이 n개가 필요하다.

두개씩 그리면 마지막거만 나옴, 이유가 무엇?

# 8주차 4/26(수) 중간고사

- 수업 기본 점수 60점

- 기능당 5점

- 채점 09:00 ~15:00

- 4/25 23:59분 까지,  코드와 채점표를 Upload

- 코드 - Project File들을 ZIP

- 채점표 - PDF

- 월요일 휴강

 

Separation of Concerns

* Polygon Drawing

- User Input

-> N Points

- User Behavior

- Method1

- Mouse

-> (move - Press - Dragging - Release)* Clicked

-> (Clicked-Move)* DoubleClicked

press에서 click이 눌려서 일어날 수 있는 조건들을 다 막아놔야 한다. 상태나 조건으로 다 막아놔야 한다. 그래서 Event에서 상태도 막아버렸다. if(eDrawingState == EDrawingState.eIdle) 로 막아놓음.

상태가지고 못 막는다. Polygon을 그리건 네모를 그리건 다 eIdle상태에서 그린다. 어떤 도구냐, 얘가 클릭 무브 클릭으로 움직이냐 npoint로 그리는 그림이냐, 그것에 따라 그림 그리는 방식 자체가 달라진다.

setShape에서 원점찍고

movePoint에서 두번째점을 움직여서 마지막 점이 끝점이라고 보는 것이다. 중간중간 점을 찍는 함수가 필요

무조건 마지막점을 움직이는 것이 movepoint

click - move - release를 하면 2번째 점이 확정

또 고정시키고 새로운 라인을 그림

첫번째 점이 화겆ㅇ되면 이 포인트를 고정하고 나머지 두번째점으로 고정, 또 클리긍ㄹ 하면 3번째 점으로 움직인다. 또 클릭하면 점이 고정된다. 그렇게 되면 점이 4번째가 생긴다. 그러고 5번째 점이 생겼는데 더블클릭하면 multiline인데 polygon은 도형을 닫히게 한다. (PolyLine과 다르다.)

한점잡고는 움직일 수 없다. 도형을 그릴 때 rectangle은 처음에 두개의 점을 찍고 시작한다. Rectangle을 만들었을 때 원점을 찍고 있으면 두개의 점이 겹쳐있는 것이다. 그래서 좌표를 두개 가져온 것이다. 그러고 나서 움직이는 순간 두번째 점이 움직이는 것이다. 놓으면 두번째 점을 고정시켜 놓은 것이다. polygon도 마찬가지다. 두점이 있다가 한 점이 움직이고 이것을 클릭하면 점이 고정된다. 

click은 press release click 까지 세개가 나온다. 

클릭 - 무브까지 됐고 - continue가 되었는데.. click을 하면 finalize를 하게 된다.

continueTransforming을 하면계속 해야되는데 finalize가 된다. 이게 오류이다.

mouseClicked에서 의 코드를 보면 될 것 같다.

EventTrace를 해야 한다.

Polygon했는데 한점찍고 잘 움직인다. 클릭을 딱 하는 순간 select로 finalize로 걸린다. addpoint가 안됐다.

mouseClicked 의 else if 문에서 지금 안 들어온다. 코드가

 

mouseClicked(MouseEvent e) 도 약간 이상한 것 같기도 한다.

 

if (e.getClicked)(e)에서 안 돌아간다

mouse1clicked에서도 확인해야 한다.

debugging해서 폴리곤 그려와