SchBoard 2 개발일지 - VI

Sch·2022년 8월 20일

SchBoard 2

목록 보기
6/16
post-thumbnail

오늘(2022-08-19)의 commit은 다음과 같다.

  1. selectingBox implementation
  2. scroll direction reverse
  3. component delete shortcut removed: backspace
  4. camera moving interpolation default value changed to .15
  5. component selection
  6. remove unused isDoubleClicked function
  7. selected objects arrange implemented
  8. selected objects remove implemented
  9. selected objects rotate implemented
  10. lastDirection implementation changed
  11. information table
  12. rotation seleted single object deselection
  13. calculation satisfaction rate added
  14. wire and socket afterimage color implemented
  15. index.html typo
  16. minimal satisfaction implementation
  17. single rotation selection disable disable
  18. component, wire, selected object count info
  19. basic component name changed to english
  20. grid fadeout
  21. render optimization
  22. remove not used Component.changeDirection

이번 커밋에서 중요한 변화 내역을 꼽자면 다음이 있다.

  • 선택 상자
  • 정보 표
    • 계산 횟수 충족도
  • 와이어 소켓 잔상

선택 상자

선택 상자는 일정한 정사각형 구간 안에 들어온 컴포넌트를 선택하고 한번에 동작을 수행하기 위해 제안되었다. 선택 상자를 통해서 선택된 오브젝트들은

  • 한번에 움직이기
  • 한번에 지우기
  • 한번에 돌리기

를 수행할 수 있도록 했다.

정보 표

정보 표는 현재 실행중인 프로그램에 대한 통찰을 주어주기 위해 제안되었다.현재 화면에 있는 컴포넌트의 수나 카메라의 위치같은 기본적인 정보와 함께 이번 프레임에서 수행하는 계산의 수, 적어도 하나의 이터레이션을 진행하기 위해 필요한 최소 계산 횟수와 같은 수치를 알아볼 수 있다.

정보 표를 만든 궁극적인 이유는 충족도에 따라서 자동으로 계산 제한을 조절하기 위함이었는데, 여기서 충족도라고 함은 실행을 자연스럽게 하기 위해 필요한 계산의 수까지 현재의 계산 제한이 얼마나 도달했는지를 말한다. 예를 들어서 NOT 컴포넌트 15개가 환 구조로 연결된 경우, NOT 환을 한 바퀴 돌리는 데에는 15번의 계산이 필요하다. 이때 만약 계산제한이 10으로 설정되어있다면 충족도는 10/1510/15이다.

와이어 / 소켓 잔상

계산 제한에 따르면 한 프레임에서도 Wire와 Socket들은 여러 상태를 가질 수 있다. 이것을 표현하기 위해서 한 프레임을 계산할 때에 바뀐 상태들을 0과 1 사이에서 평균내어, ON_COLOROFF_COLOR 사이를 보간하여 표현했다.

그림에서 보면 NOT 컴포넌트 15개가 연결된 환에 연결된 와이어들의 색과 완전히 켜진 상태(1)인 와이어의 색이 약간 차이를 보인다는 것을 알 수 있다.

profile
https://me.shtelo.org/

0개의 댓글