다이얼로그 기반 프로젝트를 만들어서
바탕화면(전체화면) DC 를 사용하여 바탕화면에 그리거나 이미지를 받아 처리하고 싶을 때,
다음과 같이 하면 된다.


이올린에 북마크하기(0) 이올린에 추천하기(0)

Trackback Address :: http://seirion.com/trackback/146 관련글 쓰기

댓글을 달아 주세요

  1. |꼬마늑대| 2009/12/14 09:35 Address Modify/Delete Reply

    정확하게는 '바탕화면'이 아니라 시스템 현재 화면을 얻는 것
    화면을 캡쳐할 때는 유용하게 사용하지만..
    화면에 그려봤자 창들이 새로 그리면 지워진다는거..

    • 바보세룐 2009/12/14 21:08 Address Modify/Delete

      오 ~ 도사님 역시 예리 하십니다. ^^
      저도 역시 화면 캡쳐 프로그램 만들면서 찾은 거였습니다.
      캡쳐하면서 테두리 표시한 후에
      캡쳐가 끝나면 지워지도록 ...

  2. 파다기 2010/01/11 23:17 Address Modify/Delete Reply

    그냥 핸들이 0인 DC를 생성하면 대...








블로그에서 이런 형식으로 코드가 올라와 있는 것을 발견할 텐데,
google syntaxhighlighter 라고 한다. 아래는 해당 참조 사이트
http://code.google.com/p/syntaxhighlighter/



사용하는 방법은 대략 아래 사이트에서 매우 친절히 가르쳐 주고 있다.
http://zoc.kr/157

링크 사이트를 보면 알겠지만, 스크립트 파일을 다운받아서, 내 블로그 계정에 올리고,
적절히 스킨 파일을 편집하여 코드 등록 시에 <pre> 또는 <textarea> 태그를 사용하면 된다.
백문이 불여 일견.

Trackback Address :: http://seirion.com/trackback/145 관련글 쓰기

댓글을 달아 주세요

  1. |꼬마늑대| 2009/12/01 15:10 Address Modify/Delete Reply

    어.. 이거 내가 알던 문법강조기랑 비슷한 것같은데..
    그건 구글 것이 아니었는데.. 구글이 샀나..
    내가 허접하게 만든 것보다 좋아보인다~

http://www.android.com/




http://java.sun.com/javase/downloads
JDK 6 Update 16



http://www.eclipse.org/downloads
Eclipse IDE for Java Developers

you may download the compressed file(zip or tar) and just uncompress it on your system.
if you see the message box below ...
사용자 삽입 이미지

















you may edit eclipse.ini file like below. (you need to add the path of JDK installed)

-vm
C:\java\jdk\bin\javaw.exe



http://developer.android.com/sdk/


you need to download a compressed file(zip or tar) and uncompress it on your system.
you need to add the path of tools (sub driectory of the uncompressed file) on your system.

1) windows (i will add it later -_-;)
2) unix/linux/osx
you may edit .bashrc (or .bash_profile) file.

export PATH=$PATH:THE_PATH_YOU_NEED_TO_ADD






installation Android Development Tools Plug-in
1. run Eclipse and open menu [Help]-[Install New Software...]
사용자 삽입 이미지


2. fill the "Work with: " field using "Add" button. and check "Developer Tools"
사용자 삽입 이미지


3. restart Eclipse after installation. and add the path of Android SDK
from the menu [Window]-[Preferences]
사용자 삽입 이미지


















select "Android" on the left side and set the "SDK Location".

[+]
[Window] - [Android SDK and AVD Manager]
select "Available Packages" on the left tab.
and select all or some what you install on the right tab. then gogogogo





oooooooops !!! it's kae-sap-zil to upload images T.T
이올린에 북마크하기(0) 이올린에 추천하기(0)

Trackback Address :: http://seirion.com/trackback/136 관련글 쓰기

댓글을 달아 주세요

  1. tinywolf 2009/11/13 08:11 Address Modify/Delete Reply

    요새 안드로이드 하나보지?

  2. 파다기 2010/01/11 23:28 Address Modify/Delete Reply

    최신버전은 안드로이드 SDK 를 한번 실행시켜줘야 Update 가 되더군요.

  3. 파다기 2010/01/12 01:39 Address Modify/Delete Reply

    Default 안드로이 Update 주소가 https프로토콜을 사용하는데...
    저의 경우 회사에서도, 집에서도 먹통이더군요.
    이 경우, 차분히 Setting에서
    Force https://블라블라 source to be fetchedn using http://..
    를 체크해주면 잘됨

select 함수

프로그래밍 2009/11/10 00:07 |

select 함수

2개 이상의 입출력을 처리하기 위해서는 어떻게 해야할까 ...
IO 개수만큼 프로세스 혹은 쓰레드를 생성하여 그것을 처리하게 만들 수 있다.
하지만 select 함수를 사용하면 비교적 쉽게 이 문제를 해결할 수 있다.


#include <sys/select.h>

int select(int nfds , fd_set *readfds, fd_set *writefds, fd_set *errorfds, struct timeval *timeout);

FD_CLR(int fd, fd_set *set);
FD_ISSET(int fd, fd_set *set);
FD_SET(int fd, fd_set *set);
FD_ZERO(fd_set *set);


파라미터
nfds
; 입축력 파일 디스크립터의 범위를 표현한다.
ndfs 는 체크할 파일 디스크립터 집합의 최대 값보다 1 큰 값으로 지정한다.

readfds ; 입력 체크를 위한 파일 디스크립터 집합을 저장한다.
fd_set 은 정수 배열을 가지고 있으며, 비트 마스크로써 체크할 파일 디스크립터를 표시해 둔다.

writefds ; 출력 체크를 위한 파일 디스크립터 저장.

errorfds ; 에러에 대한 체크

timeout ; select 함수가 블록되는 시간, NULL 이 되면 입력이 있을 때까지 계속 블록된다.

반환값 ; 성공 시, 준비된 파일 디스크립트 수
실패 시, -1 을 리턴하며, errno 를 설정함.

errorno
- EBADF ; 사용 불가한 파일 디스크립터가 하나 이상 존재
- EINTR ; 시그널에 의한 인터럽트
- EINVAL ; 시간 제한이 잘못되었거나, nfds 가 0 보다 작거나 FD_SETSIZE 보다 큼.



구버전 UNIX 는 select 함수가 sys/time.h 에 정의 되어 있지만,
POSIX 표준은 sys/select.h 에 있음.

잘 쓰여진 글
http://cyhome.cyworld.com/?home_id=a2103157
싸이월드라 막혀 있다면 그 대신
http://jangsalt.tistory.com/entry/C-%EC%96%B8%EC%96%B4-select-%ED%95%A8%EC%88%98

이올린에 북마크하기(0) 이올린에 추천하기(0)

Trackback Address :: http://seirion.com/trackback/131 관련글 쓰기

댓글을 달아 주세요

  1. tinywolf 2009/11/13 08:19 Address Modify/Delete Reply

    리눅스 시스템이라면 epoll에 대해서도 알아보고,
    윈도우즈라면 WSAAsyncSelect, WSAEventSelect에 대해서도 알아봐~

pthread
https://computing.llnl.gov/tutorials/pthreads/


volatile 변수에 대한 설명
http://www.debuglab.com/knowledge/volatile.html

Trackback Address :: http://seirion.com/trackback/115 관련글 쓰기

  1. Subject: pthread 문서모음

    Tracked from yundream의 프로그래밍 이야기 2009/11/26 15:03  Delete

    쓰레드와 관련된 다양한 내용들, 그중에서도 주로 pthread와 관련된 내용을 다루게 됩니다.

댓글을 달아 주세요

3차 베지어 커브 일반식 유도

혹자는 왜 하필이면 3차 베지어 커브이냐 ... 라고 궁금증을 가질 수도 있지만,
대부분의 폰트는 3차 이하의 베지어 커브들로 구성된다는 점,
3차 베지어 커브이면 원에 가까이 근사할 수 있다는 점 등이 그 이유일 것이다.
실제로 베지어 커브로는 완벽한 원을 만들 수 없다.

따지고 보면 1차 베지어 커브(사실은 직선)로도 원하는 모양을 만들 수 있긴 하다.
물론 이건 매우 비효율적이다. 어차피 픽셀로 표현되는 컴퓨터 나라에서 곡선이란 게 무의미 할 수도 있다.
아무튼 그건 그거고 ...

3차 베지어 커브의 일반식을 유도하기 위한 조건은 다음과 같다.
1. 컨트롤 포인트는 4개이다. (P0, P1, P2 and P3)
2. 곡선은 첫번째 포인트와 마지막 포인트를 지난다.
3. 곡선의 첫 지점에서의 기울기는 P0P1 을 이은 직선의 기울기의 3배이다.
4. 곡선의 마지막 지점에서의 기울기는 P2P3 을 이은 직선의 기울기의 3배이다.


위 사실에 근거하여,
3차 식을 다음과 같이 u에 대한 3차 식으로 두고,

사용자 삽입 이미지





이놈을 매트릭스로 표현하면,
사용자 삽입 이미지






즉,
사용자 삽입 이미지





그리고 미분한 식은 다음과 같다.
사용자 삽입 이미지





위 조건 1,2,3,4 를 적용하여 보면,
사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지


사용자 삽입 이미지





사용자 삽입 이미지
이 식에서

사용자 삽입 이미지
로 치환하면, 다음과 같다.

사용자 삽입 이미지



조건 1,2,3,4 로부터 유도된 식으로부터
사용자 삽입 이미지

사용자 삽입 이미지
를 구할 수 있고, 값은 다음과 같다.

사용자 삽입 이미지
사용자 삽입 이미지









사용자 삽입 이미지
라고 치환하면,

사용자 삽입 이미지
이렇게 되고,

고로,
사용자 삽입 이미지
다음을 통해서 b(u) 를 구할 수 있다.








이제 다 끝났다.
사용자 삽입 이미지


이었으므로, 다음과 같은 일반항이 도출된다.
사용자 삽입 이미지







references :
http://en.wikipedia.org/wiki/B%C3%A9zier_curve
Interactive Computer Graphics 2nd Edition (Addison Wesley) p434-436

수식 편집 :
http://www.codecogs.com/


아놔 심플 ~ 수학 공식 쓰기 캐노가다 ㅜㅜ


이올린에 북마크하기(0) 이올린에 추천하기(0)

Trackback Address :: http://seirion.com/trackback/130 관련글 쓰기

댓글을 달아 주세요

베지어 커브 (Bézier curve)

베지어 커브는 1962년 프랑스 엔지니어인 Pierre Bézier에 의해 만들어 졌는데,
이 커브는 그가 자동차 차체를 디자인 하기 위한 목적으로 사용한 커브였다.

이 커브는 몇 개의 조절점(Control points)들로 구성되며,
조절점들은 a parametric mathematical function에 의해 커브 모양을 결정한다.
커브의 차수는 "조절점의 개수-1"차로 결정되는데, 다음 공식에 의해
커브를 구성하는 점들의 위치가 결정된다

사용자 삽입 이미지








조절점 중 처음과 끝 점은 곡선을 지나가고, 나머지는 어느 곡선과 만나지 않는다.
곡선은 조절점으로 이루어진 다각형을 벗어나지 않는다.
조절점이 하나 뿐이면 그냥 점이다.
조절점이 두 개이면 직선이다.

조절점이 3 개인 경우는 다음과 같이 2차식이 된다.
B(t) = P0 * ( 1 - t ) 2 + P1 * 2 * t ( 1 - t ) + P2 t2

조절점이 4 개인 경우,
B(t) = P0 * ( 1 - t )3 + P1 * 3 * t * ( 1 - t )2 + P2 * 3 * t2 * ( 1 - t ) + P3 * t3


references
http://www.moshplant.com/direct-or/bezier/
http://en.wikipedia.org/wiki/Bernstein_blending_function
http://cagd.cs.byu.edu/~557/
 

이올린에 북마크하기(0) 이올린에 추천하기(0)

Trackback Address :: http://seirion.com/trackback/23 관련글 쓰기

댓글을 달아 주세요

  1. 참참 2009/06/08 15:34 Address Modify/Delete Reply

    베지어 커브네요.. ㅎㅎ
    요즘도 쓰시는건지 아니면 예전에 하시던 일이 생각나셔서 정리하신건지.. ㅎ

    • 바보세룐 2009/06/08 23:03 Address Modify/Delete

      이쪽으로 다시 혼자 공부를 해 볼까 해서 예전에 정리 한 거 였어요.
      해 볼만 한 게 이런 거 뿐이더라구요 ^^

  2. 파다기 2009/06/30 10:32 Address Modify/Delete Reply

    하는김에... 그림도 좀 넣어주세요. :p


> ps ux | awk '/process_name/ && !/awk/ {print $2}'


* 이 방법은 완전히 신뢰할 수 있는 건 아니다. 왜냐하면,
같은 이름의 다른 프로세스가 존재할 가능성이 있고,
프로세스 실행 후 이름을 변경할 수 있기 때문이다.



원문 : http://www.faqs.org/faqs/unix-faq/faq/part3/section-10.html 
(How do I find the process ID of a program with a particular name ... ?)

C 언어로 하는 방법도 블라블라 써 있긴 하지만,
결국은 /proc 밑에 정보를 읽어서 문자열 처리 해야하는 듯 ...
(좀 귀찮은데 나중에 혹시 쓸 일 있으면 해 보겠지... 일단 생략)

아흑 ㅜㅜ

Trackback Address :: http://seirion.com/trackback/123 관련글 쓰기

댓글을 달아 주세요




어찌저찌 하다보니 또 svn 의 좋은 기능 하나를 알게 되었는데 ...
(사실은 회사에서 이미 어떤 분께서 새로 사용하던 기능)

svn:externals 을 편집하여 체크아웃이나 업데이트 받을 때 외부 모듈을 함께 받는 것이다.
예를 들면,
svn 저장소에서 SomeProject 이라는 프로젝트를 받는데, 이 프로젝트는 항상
SomeLib 라는 라이브러리도 함께 필요하다면, SomeProject 를 받기만 하면 SomeLib 도 받아지면 편할 것이다.
이럴 때 사용하는 것이 바로 지금 설명하려고 하는 것이다.
분명히 있을 법한 기능인데 이제 알았다 @.@

방법은 다음과 같다.
소스를 체크아웃 받은 자리에서 다음과 같이 명령을 내린다.

svn propedit svn:externals .                                

편집기가 열리는데 다음과 같은 형식으로 쓰면 된다. 여러 줄 편집 가능 !

<폴더>              <저장경로>

Lib/SomeLib      http://someAddress/svnroot/SomeLib/trunk    

또는
<폴더>           -r      <rivision number>       <저장경로>

Lib/SomeLib    -r           12345                 http://someAddress/svnroot/SomeLib/trunk   



저장된 내용을 보려면 다음과 같이
svn propget svn:externals                                  



윈도우즈 환경에서 거북이로 하면 단방에 됩니다.
오른쪽 클릭하여 Properties 항목을 선택하면 됨.
(그림 오려 붙이기 귀찮아서 생략하려고 했는데, 그래도 완성도를 위해-_-; 붙여준다.)


사용자 삽입 이미지



































윈도즈용은 완전 쉬움 ...
이올린에 북마크하기(0) 이올린에 추천하기(0)

Trackback Address :: http://seirion.com/trackback/97 관련글 쓰기

댓글을 달아 주세요

  1. |꼬마늑대| 2008/09/05 01:04 Address Modify/Delete Reply

    오오 이런 기능이!!!!
    나도 몰랐는데..
    내가 만든 왠만한 프로젝트는 커스텀 라이브러리들이 많아서..
    유용하게 잘 쓰겠삼!

    • 바보세룐 2008/09/05 12:00 Address Modify/Delete

      리비전 설정도 되고,
      커밋할 때 알아서 외부 라이브러리는 제외됩니다.
      svn st 하면 변경사항들은 전부 보여주구요.
      여러모로 도움 될 겁니다 : )

원문 : http://kr.blog.yahoo.com/his636/1305370


MDI 프로그램을 만들면 항상 child window 가 뜬 채로 시작하는데,
파일을 open 하였을 경우에만 창이 나타나도록 하고 싶다.

이를 제어하기 위해서는

BOOL CXXXApp::InitInstance()

함수에서 다음 부분을 수정하면 된다.
 
CCommandLineInfo cmdInfo;
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; // 이부분 추가
ParseCommandLine(cmdInfo);


이해를 돕기 위해 CCommandLineInfo 클래스의 정의를 보면 다음 부분을 볼 수 있다.

enum { FileNew, FileOpen, FilePrint, FilePrintTo, FileDDE, AppRegister,
  AppUnregister, FileNothing = -1 } m_nShellCommand;

m_nShellCommand 변수에 기본적으로 할당된 값은 FileNew 이다.
사용자 삽입 이미지

















이 값을 자신이 원하는 값으로 변경하여 주면 된다.
이올린에 북마크하기(0) 이올린에 추천하기(0)

Trackback Address :: http://seirion.com/trackback/70 관련글 쓰기

댓글을 달아 주세요