GithubHelp home page GithubHelp logo

pnid_viewer's People

Contributors

diskhkme avatar namaek2 avatar yujeong000 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

namaek2 diskhkme

pnid_viewer's Issues

회전된 박스 수정 기능 추가

개요

  • 기존 박스는 축에 평행하게 그려짐 [그림1]
  • 이는 기울어진 심볼을 정확하게 감싸지 않음
  • 정확하게 심볼(또는 텍스트)에 맞는 박스를 그려야 함 [그림2]
    image

요구사항

  1. 변경된 포맷 (x1, y1, x2, y2, x3, y3, x4, y4) XML을 읽고,
  2. 박스의 형태를 유지한 상태로 (직사각형),
  3. 회전된 박스의 점 4개 좌표를 XML에 저장

요구사항 1 추가 설명

  • 기존 XML 포맷 : (x_min, y_min, x_max, y_max)
  • 수정될 포맷 : (x1, y1, x2, y2, x3, y3, x4, y4)

요구사항 2 추가 설명

  • 기존 박스처럼 네 각이 직각인 직사각형의 형태를 유지한 상태로 회전되어야 함
    image

제안 방식

  1. 파워포인트 방식

    • 파워포인트에서 박스를 그리고 회전하는 것과 동일한 UI로 제작
    • 기존 방식대로 박스를 그리고 회전 버튼을 드래그 하여 회전, 박스를 드래그 하면 이동
  2. 제안 방식

    1. Ctrl+좌클릭으로 시작점을 정함
    2. 마우스를 따라서 생성될 선분이 보임
    3. Ctrl+좌클릭으로 선분의 끝점을 정함
      image
    4. 마우스를 따라 그려질 박스가 보임. 이 때, 그려져 있던 선분과 수직인 방향으로만 박스가 그려짐
      (첫 선분의 기울기를 구하고, 그에 수직인 방향으로의 마우스 움직임만 계산하여 박스 보여줌)
      image
    5. Ctrl+좌클릭으로 최종 박스를 결정하고, 그 박스의 좌표 4곳을 테이블에 저장
      image

추가 설명

  • 제안 방식은 1번이 저희가 작업할 때 '조금' 더 편한 방식입니다. 다만 구현에 다소 어려움이 있을 것 같아 내부적으로 고려해본 방식이 2번입니다. 두 방식 모두 구현 난이도에서 큰 차이는 없을 것 같고, 둘 중 어느 방식이 확실히 '편하다'는 것도 아니기 때문에 구현하기 편하신 방식대로 구현해주시면 됩니다.
  • XML 파일에서 박스의 시작 점(p1)은 항상 '심볼(또는 텍스트)이 똑바로 되어있을 때'를 기준으로 왼쪽 위의 점으로 지정되어 있으며, 그 시작점부터 시계방향으로 점 3개가 찍혀있는 형태입니다. 수정해주신 뒤 저희가 직접 작업할 때도 같은 규칙을 따를 예정입니다.

221021 이슈들

  1. 한 번 선택된 박스는 다른 박스가 선택되기 전까지 계속 Blue로 표시됨

    • Xml을 하나 선택함
    • Datagrid에서 값을 선택함
    • Xml을 체크 해제함
    • 선택했던 Datagrid의 값을 다시 선택함
    • Xml을 체크함
    • 위의 과정 시행시 모든 박스가 Blue로 바뀜
  2. Delete로 Datagrid의 행을 지우면 지운 행의 다음 행의 좌표로 화면이 이동함

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.