728x90
반응형

전체 글

총 381개의 포스트

전체 글(381)

  1. C언어 - switch 문과 지역변수 (중괄호의 필요성)

    서론 C언어 문법에서 switch문을 사용하여 코딩을 하는 경우 지역변수를 선언하여 사용하고 싶은데 원하지 않는 동작을 하는 경우가 종종 생기고는 합니다. 본문에서는 원인을 파악하고 효율적으로 코딩을 하는 방법을 알아보도록 합시다. 우선 비교해 봅시다. switch문을 사용해서 특정 case에서만 지역변수를 생성하고 사용하고 싶다고 가정해 보도록 합시다. 하나의 예제 코드를 보도록 합시다. #include int main() { //지역변수를 사용하지 못하는 코드 intnumber = 1; switch (number) { case 1: break; case 2: int a = 1; //Error 발생!! break; default: break; } //지역변수를 사용할 수 있는 코드 int number2..

    2022.04.01

    컴퓨터/C

    Commnet

  2. Win32_API - GDI로 자유곡선 그리기3 (비트맵을 저장해서 쓰자)

    서론 지난 글들을 통해서 마우스를 통해 자유롭게 그리고 지우는 과정을 배워봤습니다. 이때 그림을 그린 좌표를 기억해서 계속 다시 그려주는 방식을 채택해서 사용했었습니다. 본문에서는 비트맵을 기억하는 방식을 채택해서 조금 더 쉽게 구현을 하는 방법에 대해서 알아보도록 합시다. 개요 구현 방식은 생각보다 간단합니다. 더블 버퍼링의 개념을 응용해서 사용하면 됩니다. WM_CREATE 과정에서 비트맵을 생성한다. 마우스 클릭 과정들에 대한 처리 전 글들과 유사함 마우스 움직이는 과정의 처리 WM_MOUSEMOVE 이 과정에서 생성한 비트맵에 그림을 그리고 고속 복사의 과정을 한다. WM_PAINT 처리 이 과정또한 이미 기억하고 있는 비트맵을 고속 복사한다. 여러 처리 변수 목록 마우스 상태를 알기 위한 변수 ..

    2022.04.01

    컴퓨터/Win32-API

    Commnet

  3. Win32_API_GDI로 자유곡선 그리기2(지우기/지우개 기능 추가)

    서론 지난 글에서 MS사에서 제공하는 그림판처럼 일종의 Pen을 구현해서 자유롭게 선을 그려봤습니다. 그렇다면 사용자의 의도대로 자유롭게 그려진 선을 지우려면 어떻게 해야 될까요? 크게 두 가지 방법이 있습니다. 특정 동작이 이루어졌을 때 선택된 곳을 배경색으로 칠한다. 특정 동작이 이루어졌을 때 선택된 곳의 선정보를 제거한다. 1번의 경우 간단하게 DC를 얻어 처리할 수 있지만, 무효화 영역이 발생했을 때 원하는 의도와 다르게 동작할 수 있습니다. 2번은 1번보다는 조금 복잡하지만 실제 기록된 그릴 정보를 제거함으로써 조금 더 원하는 의도대로 작동할 수 있습니다. 본문에서는 2번을 이용하여 지우기 기능을 추가해 보도록 하겠습니다. 지난 글의 소스코드를 이용하여 추가하도록 하겠습니다. Win32_API ..

    2022.03.30

    컴퓨터/Win32-API

    Commnet

  4. C++ - 배열 vector와 2차원 vector

    서론 C++ STL에서 제공하는 vector 클래스를 조금 더 풍부하게 사용하는 방법에 대해서 알아보도록 합시다. 이 vector 클래스 자체를 배열의 형태로 사용하는 방법과 2차원 vector를 사용하는 예제를 통해 조금 더 vector와 C++ 문법에 익숙해져 보도록 합시다. vector클래스가 뭔지 모른다면 이전 글을 참고 바랍니다. C++ - STL vector 클래스 (손쉬운 동적배열) 서론 C++ STL 라이브러리에서 제공하는 vector클래스는 쉽게 원소를 추가 및 제거할 수 있는 가변 배열의 형태를 가진 컨테이너입니다. 즉 쉽게 동적으로 메모리를 할당하여 데이터를 관리할 수 있 blog-of-gon.tistory.com 배열 vector vector를 선언하여 vector를 배열로 사용하는..

    2022.03.29

    컴퓨터/C++

    Commnet

  5. Win32_API - GDI로 자유 곡선 그리기 (마우스로 글씨 쓰기)

    서론 지난 글들을 통해서 마우스 동작에 대한 Window 운영체제에서의 메시지들을 이해하고, 간단하게 선을 그리는 방법에 대해 알아보았습니다. 본문에서는 몇 가지 추가적인 내용들을 알아보고, 자유곡선 즉 마우스 클릭을 통해 글씨를 써보도록 합시다. 어떻게 연속된 곡선을 그릴까? 지난 글들에서 우리는 GDI API를 통해 직선을 그릴 수 있었습니다. 직선을 어떻게 그렸을까요? 두 가지 함수를 통해 그렸습니다. MoveToEx(memdc, start_pos.x, start_pos.y, NULL); LineTo(memdc, end_pos.x, end_pos.y); 이 방법을 응용하면 간단합니다. 연속적으로 시작점과 끝점을 다시 그려준다면 자유롭게 곡선을 그릴 수 있게 됩니다. 어떻게 구현할지 생각해 봅시다. ..

    2022.03.28

    컴퓨터/Win32-API

    Commnet 1

  6. Bitmap(비트맵) - 이미지를 처리하는 방식

    서론 이미지를 다루는 가장 작은 단위는 Pixel입니다. 이 Pixel들 하나하나의 정보를 알고 있으면 하나의 전체의 이미지를 구할 수 있게 됩니다. 이런 형식의 그래픽 표현을 컴퓨터에서는 비트맵(Bitmap)이라고 합니다. 왜 비트맵이라고 불리는가? 말 그대로 전체 이미지의 각각의 픽셀(Pixel)의 비트 데이터가 들어있는 형식입니다. 하나의 픽셀을 비트 값의 형태로 저장을 하여 이미지를 표현할 수 있습니다. 예를 들어 16bit , 24bit, 32bit의 형태로 설정하면 한 화소에 표현할 수 있는 색상이 증가하게 됩니다. 즉 각각의 픽셀에 비트의 정보를 가지고 있는 포맷이 바로 비트맵입니다. 래스터(점) 방식의 이미지 포맷이라고 부르며 레스터 방식의 가장 대표주자가 바로 이 비트맵입니다. 정밀하고 ..

    2022.03.28

    컴퓨터/컴퓨터 공학 기초

    Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :

1 ··· 17 18 19 20 21 22 23 ··· 64
728x90
반응형