Coder Social home page Coder Social logo

midas_c's Introduction

MIDAS

MIDAS CHALLENGE 우수상 수상 작품

주제

  • 각종 필수 기능을 구현한 인테리어 프로그램 개발

프로그램 전체 구조도

View 구조

MIDAS

시스템 구조 (MVC Pattern)

MIDAS



구현 기능

필수 기능

  1. 새 문서 만들기/저장/열기

-> 파일은 json forma인 Text 파일로 저장되며, 실제 문서 작업과 같이 필요한 기본 기능 모두 구현

  1. 최종 결과물 이미지 출력

→ 이미지는 jpg, jpeg, png, svc 등등 어떠한 이미지 파일 형식으로도 저장 가능 하며 이미지의 파일 형식이 아닐 경우의 예외처리 구현

  1. 공간 정의하기

→ 제약 조건을 모두 준수
조건 A) 사방이 벽으로 막혀있는 공간이 존재할 경우 저장의 기능은 할 수 있지만, 이미지 파일로 출력할 수 없음 -> 사용자가 혹시나 작업을 하다 저장하지 못할 경우를 고려
조건 B) 문과 창문은 벽 위에서만 그릴 수 있음

  1. 객체 정의하기

→ 제약 조건을 모두 준수
조건 C) 기본으로 배치 가능한 객체인 세탁기, 냉장고 정의
조건 D) 객체가 공간에 움직일 경우 마그네틱을 이용해 공간에 달라 붙음 공간이 객체에 움직일 경우 설계상 공간 안의 객체는 다시 재 배치 하는 것으로 판단

추가 기능

  1. 치수 표현 가능

→ 치수를 처음 입력한 Canvas에 비율에 맞게 조정함, 치수를 볼 수도 있고 수정도 가능

  1. 편집 명령

→ 객체나 공간 모두 이동, 삭제, 복사, 수정의 기능이 가능

  1. 마우스 조작 편의 기능

→ 클릭 된 객체는 색깔을 다르게 하여 판단 마우스를 드래그 해 이동할 수 있으며 마우스 우 클릭을 통해 편집 명령 가능

  1. 색을 통한 구분 가능

→ 클릭 된 객체는 사용자가 원하는 대로 어떤 컬러 든 바꿀 수 있음

  1. 사용자 객체 정의 기능

→ 프로그램에서 기본적으로 제공이 어려운 객체의 경우, 사용자는 새로운 객체를 정의할 수 있으며 복사의 기능을 통해 정의 된 객체를 쉽게 사용 가능

핵심 구현 사항

  1. 공간의 그룹화

→ 사용자가 사용하기 편하게 하기 위해 벽에 문과 창문을 결합할 경우 그룹화 하여 이동 하는 기능 구현

  1. 부드러운 애니메이션

→ 치수로만 입력하여 공간이나 객체를 표현하지 않고 마우스로 드래그 하여 각 공간과 객체를 표현 가능, 움직인 위치에 맞춰서 치수가 수정

  1. 사용자를 배려한 UI/UX 설계

→ 객체를 벽에 넣을 때 만약 그 벽에 문이 없거나 문이 있어도 넣으려는 객체가 더 크기가 작아 의미가 없을 경우 사용자가 불편하지 않게 객체는 공간에 들어가지 못 함

midas_c's People

Contributors

hun1138 avatar kakyunglee avatar wnsgml972 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

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.