Pixel Color UnderMouse



This is a feature that I wanted for a tool I’m doing. I have a color selection control that can select the color of the pixel under the mouse position from the entire application window. I searched the web for a solution and I found a cool implementation from theWPFblog, as Lee Brimelow explains:

I tried many different ways of doing this but the cleanest was to use the CroppedBitmap class. As you can see in the code below, I first pull out a 1×1 pixel cropped bitmap from the color picker image that is directly below the mouse. Then it’s just a matter of copying the 1 pixel into a byte array and reading the RGB values. There are 4 bytes in every pixel which corresponds to the RGB colors and 1 byte for alpha. To change the color of the rectangle I simply create a new SolidColorBrush from the RGB values. I can think of many great uses for this! Click on the image at the left to check out the app. The C# source code is listed below so you can check out exactly how I implemented it.

The code can be found here.

Another Alternative

Lee’s solution is not good enough for me because I need a color from a pixel found in the entire client area of my application, and Lee’s solution forces me to have a BitmapSource to take the pixel from it.

I found a cleanest way to do that, maybe not clean in “WPF” speaking but using only three simple Win32 functions:

private struct POINT{ public uint X; public uint Y;}[DllImport("gdi32")]private static extern int GetPixel(int hdc, int nXPos,int nYPos);[DllImport("user32")]private static extern int GetWindowDC(int hwnd);[DllImport("user32")]private static extern int GetCursorPos(out POINTAPI lpPoint);[DllImport("user32")]private static extern int ReleaseDC(int hWnd, int hDC);

And here is the GetPixelColor method implementation:

private static SolidColorBrush GetPixelColor(Point point){    int lDC = GetWindowDC( 0 );    int intColor = GetPixel( lDC, (int)point.X, (int)point.Y );    //    // Release the DC after getting the Color.    ReleaseDC( 0, lDC );    //byte a = (byte)( ( intColor >> 0x18 ) & 0xffL );    byte b = (byte)( ( intColor >> 0x10 ) & 0xffL );    byte g = (byte)( ( intColor >> 8 ) & 0xffL );    byte r = (byte)( intColor & 0xffL );    Color color = Color.FromRgb( r, g, b );    return new SolidColorBrush( color );}

With GetWindowDC( 0 ) I ask for the entire window DC, which then I use with GetPixelColor that retrieves the color value from position.

The System.Windows.Media.Color class in WPF doesn’t have a FromArgb method that accepts a integer value of the color as its counterpart from System.Drawing.Color, so I break apart the RGB components from integer value.

Using it:

 protected override void OnMouseMove(MouseEventArgs e)
 {
 POINT point;
 GetCursorPos( out point );
 Point pos = new Point( point.X, point.Y );
 this.StrokeBrush = GetPixelColor( pos );
 }

This is an alternative solution, for getting the color under the mouse position even when you don’t have a BitmapSource to take it from or you are mixing WinForms or Win32 with WPF.

Have fun!

'Computer Science' 카테고리의 다른 글

flash plot  (0) 2009.04.21
contextmenustrip 메뉴에 하위메뉴 동적으로 생성  (0) 2009.04.15
[C#]마우스 좌표 얻기  (0) 2009.04.08
EVC 4.0 프로그래밍의 준비  (0) 2009.04.06
액션 스크립트 용어 및 정리  (0) 2009.03.17
기본적인 좌표는
Control.MousePosition.X
Control.MousePosition.Y
이고 이놈을 그대론 절때 못 쓴다. LCD화면의 좌표를 보내주는거 같고

픽스 해야한다.

해당컨트롤놈.PointToClient(new Point(Control.MousePosition.X, Control.MousePosition.Y));

이렇게 하면 해당컨트롤을 기준으로 마우스 실제 상대좌표가 어딘가 뱉어낸다.

이값은 해당컨트롤.마우스이벤트(MouseArgsEvent e)의 e.X와 같다.

후후. 안그럼 패딩 뺴주고 지랄날리부르스해야한다.

편리하군

PointToClient와 PointToScreen

파이썬 데몬 만들기

http://cafe.naver.com/cafepython/54

출처: python cookbook p229, Forking a Daemon Process on Unix


pid = os.fork()
if pid > 0:
# exit first parent
sys.exit(0)

#decouple from parent environment

os.chdir("/")
os.setsid()
os.umask(0)

# do second fork
pid = os.fork()
if pid > 0:
sys.exit(0)

#
# daemon business code here
#

이와 관련된 설명은 Advanced Programming In The Unix Environment에서 찾을 있습니다. 모호한 부분을 말씀해 주시면 원문을 올려드리죠. ^^

Daemon Coding Rules(Advanced Programming In The Unix Environment p417)

1. fork() 호출하고 부모를 종료(exit)한다. 작업에는 가지의 이유가 있다.

관련 코드

pid = os.fork()
if pid > 0:
# exit first parent
sys.exit(0)


첫째, 만약 데몬이 명령으로 시작했다면, 부모를 종료(terminate)하는 것은 쉘이 명령이 완료(done)되었다고 생각하게 만든다.

둘째, 자식은 부모의 프로세스 그룹 아이디를 상속받고, 프로세스 아이디를 얻는다. 그래서 우리는 자식이 프로세스 그룹 리더가 아니라는 것을 보장할 있다.

2. 새로운 세션을 생성하기 위해 setsid() 호출한다. 프로세스는 새로운 세션의 세션 리더이자 프로세스 그룹의 리더가 된다, 그리고 컨트롤링 터미널과의 연관이 없어진다.

관련 코드

os.setsid()


3. 루트 디렉토리는 현재 작업 디렉토리를 변경해라. 부모로부터 상속받은 현재 작업 디렉토리는 마운트된 파일 시스템일지도 모른다. 데몬은 시스템이 재부팅될 까지 존재한다, 만약 데몬이 마운트된 파일 시스템에 머문다면, 파일 시스템은 언마운트될 없다. 생략...

관련 코드

os.chdir("/")

4. 파일 모드 생성 마스크를 0으로 설정한다. 상속받은 파일 모드 생성 마스크는 특정한 퍼미션을 허락하지 않고 있을지도 모른다. 만약 데몬 프로세스가 파일을 생성하고자 한다면, 특정 퍼미션으로 설정하기를 원할 것이다. 예를 들어, 만약 그룹 읽기와 쓰기가 가능하도록 파일을 생성하고자 한다면, 파일 모드 생성 마스크는 이들 퍼미션의 마스크를 다를 꺼놔야 것이다.

관련 코드

os.umask(0)

5. 생략...

'파이썬 프로그래밍' 카테고리의 다른 글

TKINTER 요약  (0) 2011.04.24
UltraEdit Python 설정  (0) 2009.06.28
파이썬으로 재귀하향 파서 만들기(2)  (0) 2009.03.02
파이썬으로 재귀하향 파서 만들기(1)  (0) 2009.03.02
파이썬에서 한글쓰기  (0) 2008.11.24

EVC 4.0 프로그래밍의 준비

출처: www.propoz.co.kr

안녕하세요. Lucy입니다.

예전에 투데이스피피시에서 간단한 개발 강좌를 부탁하시기에 어떤 것을 가지고 강좌를 할까 고민을 하다가, 그래도 도움이 되는 것을 해보자해서 Windows Mobile 2003과 2003 SE를 위한 공용 텍스트 리더 어플리케이션을 단계별로 만드는 작업을 진행하면서 중요한 부분을 체크해 가는 방식으로 간단히 강좌를 진행하다가, 개인적인 사정으로 중단된 바가 있습니다.

그래서 이곳에서 다시 해당 강좌를 연재하려고 합니다.

먼저 많은 분들이 질문하시는 것들 중에 하나가 PC에서는 Visual Basic, Visual C++, Delphi 등 다양한 개발 도구들이 있는데, Pocket PC에서는 어떤 개발 도구를 쓰느냐 하는 질문입니다.

이 질문에 대한 답변이 첫 회의 주된 내용이 될 듯 하네요.

Pocket PC에서는 다양하다고는 할 수 없지만, 몇몇 개발 도구들이 있습니다. 주로 PC에서 개발해서 Pocket PC에서 실행하는 것이 정석입니다만, 간혹 Pocket C#와 같이 Pocket PC 상에서 직접 작성해서 컴파일하는 도구들도 준비되어 있습니다. 그러나 이런 도구들은 본격적인 개발을 위한 것이라기 보다는 간단한 테스트를 위한 목적으로 많이 사용됩니다.

이 강좌에서는 가장 많이 사용되는 도구인 Microsoft eMbedded Visual C++ 4.0 Service Pack 4 + Microsoft Windows Mobile 2003 SDK + Developer Resources for Windows Mobile 2003 Second Edition을 사용하여 개발을 진행하도록 하겠습니다.

물론 .NET Compact Framework를 이용하여 Managed Code로 작업할 수도 있겠지만, 이 강좌에서는 Native Code로 진행할 예정입니다.

개발을 진행하기 전에 이 강좌를 보시려면 다음의 조건이 어느 정도는 충족되어 있어야 합니다.

1. 개발에 관심이 있어서 관련 서적을 사서 보거나 빌려볼 수 있을 정도의 열정

아래 조건은 필수 조건은 아닙니다만, 없으면 귀찮아지는 것들입니다.

1. 개발에 필요한 수준의 영어 실력 (ㅡ_ㅡ 개발 문서가 전부 영문입니다.)
2. C++에 대한 기본적인 이해 (심층 분석까지 갈 필요는 없습니다.)
3. MFC/API에 대한 기본적인 이해 (심층 분석까지 갈 필요는 없습니다.)
4. Windows 시스템에 대한 기본적인 이해


1. 개발 도구 준비하기

Pocket PC 어플리케이션 개발을 진행하기 위해서 먼저 개발 도구를 준비하셔야 겠지요. Pocket PC는 작지만, 그 위에서 동작하는 어플리케이션을 개발하기 위해서는 많은 준비가 필요합니다.

먼저 PC의 운영 체제는 Windows 2000 Service Pack 2 이상, 혹은 Windows XP Service Pack 1 이상이어야만 합니다. Windows Server 2003에서도 개발을 진행할 수는 있습니다만, 상대적으로 귀찮은 부분이 많이 존재합니다.

그 중에서 권하는 것은 Windows XP Professional Service Pack 2입니다. (Service Pack 2는 굳이 없어도 되겠지만요.)

운영 체제의 요건이 충족된다면 개발 도구를 준비하셔야 합니다.

Pocket PC의 개발 도구는 VS.NET에 연동되어 있는 SDE(Smart Device Extension)를 제외하면 모두 무료로 배포되며, 마이크로소프트의 Pocket PC 개발자 사이트에서 다운로드하실 수 있습니다.

한글 환경에 맞추어 개발하기 위해 필요한 도구들은 다음과 같습니다.

1. Microsoft eMbedded Visual C++ 4.0 (다운로드 페이지) - 영문 버전

CD Key는 다음과 같습니다.

TRT7H-KD36T-FRH8D-6QH8P-VFJHQ

2. Microsft eMbedded Visual C++ 4.0 SP4 (다운로드 페이지) - 영문 버전

3. Microsoft SDK for Windows Mobile 2003-based Pocket PCs (다운로드 페이지) - 영문 버전

4. Developer Resources for Windows Mobile 2003 Second Edition (다운로드 페이지)

5. 한글 Pocket PC 2003 Emulator Image (다운로드)

6. 영문 Pocket PC 2003 SE Emulator Image (다운로드 페이지)

7. 한글 Pocket PC 2003 SE Emulator Image (다운로드)

8. Run-time Type Information Library for the Windows Mobile-based Pocket PC 2003 SDK (다운로드)

위의 항목들을 순서대로 설치하셔야 합니다. 자세한 설치 방법과 설정 방법은 2회에서 다루도록 하겠습니다.

지루한 글 읽어 주셔서 감사합니다.


첫 번째 강좌를 올려드린 이후에 바쁜 일정으로 인해 꽤 오랫동안 강좌를 못한 점 진심으로 사과 드립니다. 이번에는 지난 시간에 이어 설치 부분을 계속 진행하기로 하겠습니다.

개발 도구라는 특성 상 단순히 설치 만으로 설정이 종료되지 않는다는 점 때문에 처음에 설치에 대해 많은 시간을 할애하여 설명하고 있습니다. 하지만 이 강좌의 설정 부분만 잘 숙지하시면 보다 쾌적한 개발 환경을 만끽하실 수 있습니다. 이 강좌의 내용대로 설정을 진행하시면 다음의 환경에 맞는 개발이 가능하게 됩니다.

- 영문 Pocket PC 2003
- 한글 Pocket PC 2003
- 영문 Pocket PC 2003 Second Edition
- 한글 Pocket PC 2003 Second Edition

물론 이를 응용하시면 중국어, 일본어, 독일어 등의 시스템에 맞는 개발도 진행하실 수 있습니다. 전체적으로 귀찮은 설정 작업을 해야한다는 점만 제외하면 어려운 것은 아니므로, 순서대로만 따라하시면 무리없이 설정을 끝내실 수 있습니다.


1. eMbedded Visual C++ 4.0 설치

eMbedded Visual C++ 4.0(이하 eVC4)의 설치는 일반적인 어플리케이션 설치와 같은 방식으로 설치가 진행되며, 마법사 형식(Next 버튼을 눌러서 다음 단계로 진행하는 방식)으로 설치가 진행됩니다.

일반적으로 CD를 가지고 있지 않으신 분들은 Microsoft 사이트에서 다운로드한 압축 자동 해제 파일 형태로 가지고 계실 텐데, 처음 설치 경로는 여러분의 계정 아래의 임시 폴더로 지정되어 있습니다. 반드시 경로를 C:setupevc 등으로 바뀌주시기 바랍니다. 그러지 않으면 설치 파일과 임시 파일들이 한데 섞여 설치가 곤란하게 됩니다. 압축을 다 푸셨으면 C:setupevcsetup.exe 파일을 실행하셔서 설치를 진행하시면 됩니다.

설치 프로그램은 eVC를 설치하기 전에 Platform Builder 4.0을 설치하게 되는데, 아주 특별한 경우를 제외하면 재부팅을 요구하게 됩니다. 이 때 재부팅을 하지 않으면 설치가 더 이상 진행되지 않으므로 반드시 재부팅을 해 주시기 바랍니다. 재부팅 후 설치 프로그램인 setup.exe를 다시 실행하시면 설치가 그 이후부터 계속 진행됩니다.

설치를 진행하다 보면 설치할 항목을 선택하게 되는데, Standard SDK는 설치하실 필요가 없기 때문에 해당 선택 상자를 지워주시면 됩니다.

설치가 끝나면 아까 생성되었던 C:setupevc 폴더는 삭제하셔도 관계 없습니다.


2. eMbedded Visual C++ 4.0 Service Pack 4 설치

eMbedded Visual C++ 4.0 Service Pack 4(이하 SP4)의 설치는 eVC와 비슷하지만 훨씬 간단하게 구성되어 있습니다. 설치 방법은 마찬가지로 압축 해제를 통해 진행하게 되는데, 이 경우에도 가능하면 별도의 폴더를 만들어 설치하도록 하는 것이 좋습니다. 단, SP4는 압축이 풀린 후에 자동으로 설치가 진행되므로 이 점만 유의하시면 됩니다.


3. Microsoft SDK for Windows Mobile 2003-based Pocket PCs 설치

Microsoft SDK for Windows Mobile 2003-based Pocket PCs(이하 PPC2003 SDK)의 설치는 Microsoft Installer(이하 MSI)를 이용하여 설치가 이루어지며, 별도의 설정 변경 없이 설치를 진행하시면 됩니다.


4. Developer Resources for Windows Mobile 2003 Second Edition 설치

Developer Resources for Windows Mobile 2003 Second Edition(이하 DevResSE)의 설치 역시 MSI를 이용한 설치 작업을 진행하시면 됩니다.

설치 후 설정 작업을 해 주어야 하지만, 이 부분은 제일 마지막 단계에서 한꺼번에 설정을 하도록 하겠습니다.


5. 한글 Pocket PC 2003 Emulator Image 외의 에뮬레이터 이미지들 설치

에뮬레이터 이미지들 역시 MSI로 되어 있으므로 일반적인 어플리케이션과 같이 설치를 진행하시면 됩니다.

설치 후 설정 작업을 해 주어야 하지만, 이 부분은 제일 마지막 단계에서 한꺼번에 설정을 하도록 하겠습니다.


6. Run-time Type Information Library for the Windows Mobile-based Pocket PC 2003 SDK 설치

Run-time Type Information Library for the Windows Mobile-based Pocket PC 2003 SDK(이하 RTTI)는 eVC에서 try=catch를 정상적으로 사용할 수 있도록 해 주는 라이브러리입니다.

설치 위치를 C:RTTI로 지정하신 후 압축을 해제하시면 됩니다.


7. 설정하기

지금부터 지루한 설정 작업이 진행됩니다.

7-1. 폴더 지정하기

먼저 eVC를 실행합니다. 시작-프로그램-Microsoft eMbedded Visual C++ 4.0-eMbedded Visual C++ 4.0을 클릭하면 됩니다.

eVC가 실행되면, 먼저 Tools-Options를 선택합니다. Options 대화 상자가 나타나면 Directories 탭을 선택합니다.

Platform은 POCKET PC 2003을 지정하고, CPUs에서 Win32 (WCE emulator)를 지정하고, Show Directories에서 Include files를 선택합니다.

리스트의 제일 아래 빈 박스 부분을 더블 클릭하면 새 폴더를 지정할 수 있는데, ... 버튼을 눌러 폴더 선택 대화 상자를 엽니다. C:PROGRAM FILESDEVELOPER RESOURCES FOR WINDOWS MOBILE 2003 SECOND EDITIONINCPOCKET PC 폴더를 선택하신 후, 해당 라인을 제일 위로 올립니다. 위로 올릴 때는 위쪽 화살표 아이콘을 눌러주면 됩니다.

이제 다시 Show Directories에서 Library files를 선택하고, 마찬가지로 C:PROGRAM FILESDEVELOPER RESOURCES FOR WINDOWS MOBILE 2003 SECOND EDITIONLIBPOCKET PCX86를 추가하고 제일 위로 올립니다.

이제 CPUs를 Win32 (WCE ARMV4)로 변경하신 후 Include files에는 C:PROGRAM FILESDEVELOPER RESOURCES FOR WINDOWS MOBILE 2003 SECOND EDITIONINCPOCKET PC 폴더를 추가하시고, Library files에는 C:PROGRAM FILESDEVELOPER RESOURCES FOR WINDOWS MOBILE 2003 SECOND EDITIONLIBPOCKET PCARM을 추가합니다.

7-2. 에뮬레이터 등록하기

기본적으로 여기까지 진행하시면 영문 Pocket PC 2003 에뮬레이터와 디바이스만 등록이 되어 있는 상태입니다. 한글 Pocket PC 2003과 SE 에뮬레이터를 사용하려면 추가적인 설정이 필요합니다.

eVC가 실행된 상태에서 Tools-Configure Platform Manager를 선택합니다. POCKET PC 2003 아래에 POCKET PC 2003 Device와 Pocket PC 2003 Emulator가 등록된 것을 확인할 수 있습니다. 새로운 디바이스를 등록하기 위해 Add Device 버튼을 클릭합니다. 그러면 New Device 항목이 생성되는데, 이름은 나중에 지정해도 되니 일단 그대로 놔둡니다.

New Device가 선택된 상태에서 Properties 버튼을 클릭하면 디바이스 프로퍼티 대화 상자가 나타나는데, Transport는 TCP/IP Transport for Windows CE를 선택합니다. Startup Server는 Emulator Startup Server를 선택합니다.

Startup Server의 옆에 있는 Configure 버튼을 클릭하면 Emulation Configuration Settings 대화 상자가 나타납니다. Device의 Image에서는 연결할 에뮬레이터 이미지를 지정합니다. 한글판 Pocket PC 2003을 선택하기 위해 KOR POCKET PC 2003을 선택합니다. 이 항목이 없다면 5. 의 에뮬레이터가 정상적으로 설치되지 않은 것이므로 다시 확인을 하셔야 합니다. 나머지 부분은 건드리실 필요가 없으며, OK 버튼을 클릭하면 1차적으로 이미지 지정이 끝납니다.

이미지의 지정이 끝났다면 하단의 Test 버튼을 클릭해 봅니다. 에뮬레이터가 실행되고, 한글판 Pocket PC가 나타난다면 정상적으로 지정이 된 것입니다. OK 버튼을 눌러 설정을 완료합니다. 테스트를 하지 않았다면 테스트를 하지 않았다는 경고 대화 상자가 나타나므로 가급적이면 테스트를 거칠 것을 권합니다.

New Device의 이름을 변경하려면 해당 이름 위에서 클릭을 두 번 해주면 됩니다. 더블 클릭을 하면 설정 대화 상자가 열리므로 더블 클릭을 하면 안 됩니다. 이름은 POCKET PC 2003 Kor Emulator 정도로 바꿔줍니다. Korean Pocket PC 2003 Emulator로 할 수는 있지만, 나중에 에뮬레이터를 선택할 때 정신이 없으므로 가능하면 형태를 기본과 맞춰 주는 것이 좋습니다.

추가적으로 SE의 에뮬레이터도 지정을 해 주면 됩니다. Radio 관련 에뮬레이터는 일반적인 경우 지정할 필요가 없으며, SE는 언어별로 다음의 4가지 이미지만 설정하면 됩니다. (영문/한글을 지정할 경우 4 X 2 = 8개의 이미지를 지정해야 합니다.)

SE Emulator - 240x320 모드
SE Landscape Emulator - 320x240 모드
SE VGA Emulator - 480x640 모드
SE Landscape Emulator - 640x480 모드

7-3. RTTI 설정하기

eVC4를 종료하고, 아까 RTTI를 설치했던 폴더(C:RTTI)로 갑니다. 안에는 Armv4 폴더와 emulator 폴더의 파일들, 그리고 EULA.txt 파일이 있습니다. 해당 파일과 폴더들을 전부 선택한 후 (폴더대로 선택해야 합니다.) C:Program FilesWindows CE Toolswce420POCKET PC 2003Lib 폴더에 복사하거나 옮깁니다.

Lib 폴더 안에도 Armv4 폴더와 emulator 폴더가 있으며, 각각의 파일들이 올바른 폴더 안에 들어가야 합니다.


이로서 개발 도구의 설치가 끝났습니다. 전부 다 마치면 대략 2시간 정도 걸립니다.

감사합니다.

'Computer Science' 카테고리의 다른 글

Pixel Color Under Mouse  (0) 2009.04.09
[C#]마우스 좌표 얻기  (0) 2009.04.08
액션 스크립트 용어 및 정리  (0) 2009.03.17
Introduction to Programming with Managed DirectX 9.0  (0) 2009.03.09
DirectX Programming in C#  (0) 2009.03.09

몰래알바로 구입한 새 자가용을 공개합니다.



'기본 카테고리' 카테고리의 다른 글

Graphs on Flash - using ActionScript!  (0) 2009.04.21
How to use to obtain the color of the pixel that is by the mouse pointer  (0) 2009.04.09
2009.03.02  (0) 2009.03.30
인생 반전 연습  (0) 2009.03.20
irrEdit 는  (0) 2009.03.19

할 수 있는 일이 늘어나면 좋아하게된다

아이들을 보면 사람이 무언가를 좋아하게 될 때의 프로세스를 쉽게 알 수 있다.

일례로 산수에 젬병인 아이에게 산수시간은 괴로움 그 이상 그 이하도 아니다. 선생님이 칠판에 적어주는 문제에도 책상 위에 펼쳐진 교과서나 연습문제에도 자신이 할 수 있는 것’’자신 있는 것이 하나도 없기 때문이다.

그렇게 못하는 것에만 시간을 투자하면 아이의 뇌는 굳어버린다. 눈에서 총기가 사라지고 도망치고 싶은 마음이 굴뚝같을 것이다.

이럴 때는 장난감을 사준다는 식으로 눈앞에 그럴싸한 상을 내걸어봐야 아무런 소용이 없다. ‘못하는 일에 대한 의욕을 불러일으키기란 거의 불가능하기 때문이다.

하지만 그런 아이를 부모나 학교 선생님이 방과 후에 잘 지도하여 하나씩 할 수 있도록만든다면? 그러면 아이의 뇌는 산수시간에 자신이 할 수 있는 것을 하려고 움직이게 된다.

그리고 자신의 힘으로 문제를 풀었다는 성공의 체험은 뇌에 쾌락의 자극을 준다. 따라서 문제를 풀고 싶은 마음이 간절해지는 것이다(괘락과 불쾌감의 판단에 깊이 관여하는 것은 편도체 扁桃體 라는 기관이다).

성공체험을 거듭하면서 같은 종류의 문제를 반복해서 풀다보면 그에 관한 뇌 내의 네트워크가 강화되고, 그 결과 더 빠른 시간에 정확히 풀 수 있다.

그와 동시에 뇌는 다음 단계로 성장할 준비를 한다.

이 때 부모나 학교 선생님이 지도를 통해 또 하나의 할 수 있는 것을 만들어주면 산수시간에 아이의 뇌는 더 활발히 움직일 것이다. 아마도 눈이 반짝반짝 빛나지 않을까?

성공을 체험할 기회가 늘어나니, 편도체가 즐거움을 느끼는 순간도 늘어난다.

그렇게 자신이 할 수 있는 것’ ‘자신 있는 것이 늘어날수록 뇌가 활동하는 시간이 길어져서 즐거움의 감정이 극대화되고, 마침내 산수공부를 즐기게 된다.

좋아한다는 감정이 괴로움이나 힘든 과정을 뛰어넘을 수 있는 의욕을 낳는 것이다.

이 원칙은 어른이 되어서도 마찬가지로 적용된다.

- 뇌와 마음의 정리술 中에서

- 2009.04.03 sjkim –

'뇌와 마음의 정리술 中에서' 카테고리의 다른 글

의욕을 높이는 기본원칙  (0) 2009.03.30

Day 2 Business News

March 3, Tue.

GM Receives $4 Million; Chrysler Still Waiting.

The US government paid out the first $4 billion in emergency loans to support General Moters, but a parallel rescue payment for Chrysler was on hold.

The government had completed the first $4 billion load to GM on Wednesday (Dec 31, 2008). The U.S. Treasury Department spokesperson said that they are working expeditiously with Chrysler to finalize that transaction and remain committed to closing it on a timeline that will meet near-term funding needs. Both GM and Chrysler have said they need the infusion of government cash to meet payouts to suppliers. A plunge in auto sales has drained their own cash holdings. The administration of President George W. Bush approved a $17.4 billion for GM and Chrysler in December 2008.

(Source from Reuters January 2, 2009)

Treasury Department: 미국 재무부

Spokesperson: 대변인

Expeditiously: 신속하게, 급하게

Transaction: 거래

Timeline: 일정

Infusion: 주입, 유입

Plunge: 돌진, 감소, 가라앉음

Drain: 차츰 소모시키다. 고갈 시키다.

Cash holdings: 현금 보유

Approve: 승인하다.

Bailout: 비상구제, 긴급 융자

운이 트이는 영어 EBS FM 2009.03

March 2, Mon

Day 1. Business Talk

Greetings

Chris : Good Afternoon. I am Chris Kim of Woonity Korea. Mr. Whitman is expecting me at two.

Secretary : Ill tell him youre here. One moment, please.

(a little later) Im sorry but he has just stepped out briefly. Hell back in twenty minutes.

Chris : Well, I dont mind waiting.

(after 20 minutes)

Mr. Whitman : Hello, Chris, Its good to see you again. Sorry for having you wait. Please come in.

Chris : Thank you. I see youre looking well.

Mr. Whitman : Thanks, as are you. Its been quite a while, hasnt it?

Hows life treating you?

Chris : Well, I am still doing the same old job at same old company. I just wanted drop off these brochures on my way to the Finance Center.

Mr. Whitman : Its very nice of you to come over and do that.

Chris : Think nothing of it.

1. 진취적인 만들기

1. 의욕을 높이는 기본원칙

첫째는 건강, 그리고 욕구’ ‘좋음 싫음’ ‘적당한 흥분

의욕을 높이고 진취적인 사람이 되려면 가장 먼저 건강한 뇌를 유지해야 한다.

일과 학업으로 바쁘고 힘들더라도 일정한 수면시간을 확보하고, 정해진 시간에 일어나 생활의 리듬을 찾아야 한다. 아울러 끼니를 꼬박꼬박 챙겨먹고 조금씩 몸을 움직여서 혈액이 뇌로 잘 흐르도록 해야 한다. 이렇게 뇌가 활동하기 좋은 조건을 만들고 나서 문제 해결에 임하지 않으면, 필요 이상으로 부정적인 사고를 하기 쉽다.

제대로 활동하지 않는 뇌를 이용해 생각을 하다 보니, 어려운 문제는 더 어렵게 느껴질 뿐이다. 이성보다 감정이 앞서기 쉬우므로 냉정한 판단을 하기가 어렵다.

결과적으로 의욕이 생기지 않으며 사고체계도 혼란스러워 지는 것이다.

우선은 이런 상태를 개선하는 것이 중요하다는 사실을 명심하자.

그러면 의욕을 높이는 기본요소를 살펴보자

V, 욕구

V, 좋음 싫음

V, 적당한 흥분

뇌를 자극함으로써 이중 무엇인가를 높이면 된다.

가장 먼저 욕구에 관해 알아보자. 복잡하게 생각할 것이 없이, 일이나 공부할 때를 떠올려보라. 지위나 명예 등 자신이 갖고 싶은 것을 얻을 수 있다면 더 열심히 하게 되지 않던가?

뚜렷한 욕구를 갖고 있는 사람은 그렇지 않은 사람보다 의욕을 이끌어내기가 쉽다.

최근 곳곳에서 이야기되고 있기에 여기서 상세히 다루지는 않지만, 의욕을 높이기 쉬운 사람은 자신에게 상을 잘 준다는 것을 기억하기 바란다.

일이나 공부에 매진해야 할 때는, 먼저 노력한 결과로 무엇을 얻을 수 있는지를 뇌에 분명히 인식시켜야 한다. 하지만 최종 목표에 도달하기까지는 시간이 걸리기 마련이니, 목표를 작게 나누어서 여기까지 도달하면 갖고 싶은 시계를 사기로 하자’ ‘이만큼 하면 1박으로 여행을 가는 거야이렇게 작은 상을 눈앞에 걸어두는 것이 좋다. 그리고 시간이 날 때 카탈로그를 보면서 감정을 자극하여 뇌에 욕구를 불러일으킨다. 그런 다음 열심히 노력해 목표를 달성했다면 진짜로 자신에게 상을 주자.

이것이 바로 의욕을 쉽게 높일 수 있는 간단한 방법이다.

다음으로 중요한 것은 그 일이나 공부를 얼마만큼 좋아하느냐다.

힘든 연습을 묵묵히 해내는 운동선수는 종종 좋아하니까 열심히 한다고 한다.

또 남들 눈에는 힘들어 보이는 공부나 연구에 종사하는 이들에게 왜 그렇게 열심이냐고 물어보면 어떤 대답이 돌아오는가? 바로 좋아하니까이다.

사람은 왜 고통과 노력이 따르는 일과 공부, 스포츠 등을 통해 즐거움을 느끼는 걸까? 그 속에 바로 자신이 잘 할 수 있는 일자신 있는 일이 있기 때문이다.

내 행동을 지배하고

결정하는 것은 바로 나 입니다.

오직 나만이 내 태도를 바꿀 수 있습니다.

나 자신을 위해 마음껏 게으름을 피울 수도 있고

부지런하게 활동하여 인간관계를 유연하게 만들 수도 있습니다.

나에 대한 사람들의 평가는 변하지 않을 수도 있지만

내가 어떻게 살아갈지는 바로

나 자신을 결정합니다.

모든 해답은 자신에게 있습니다.

바둥거리는 것도, 뛰는 것도, 주저앉거나

다시 일어서게 하는 것도 자기 자신입니다.

생각이 행동을 결정합니다.

더 중요한 것은 자신의 생각과 행동을

일치시키는 것입니다.





'기본 카테고리' 카테고리의 다른 글

몰래알바로 구입한 새 자가용을 공개합니다.  (0) 2009.04.06
2009.03.02  (0) 2009.03.30
irrEdit 는  (0) 2009.03.19
일리히트 엔진 시작하기  (0) 2009.03.19
Irricht엔진튜토리얼 15. LoadIrrFile  (0) 2009.03.19

irrEdit 는

Posted 2007/09/15 22:06 by 수달
irrEdit 는 무료 실시간 3D 월드 에디터이고 라디오시티 라이트맵 생성기입니다.
그것은 irrlicht scene graph editor, world editor, particle system designer, meshviewer 와 더많은것처럼 사용될수 있습니다.
그것은 간단하게 일리히트 엔진의 원래의 포맷인 .irr 파일같은 장면들을 저장한다.

그것은 또 다음을 포함한다.

* 고품질 라디오시티 라이트맵 생성기
* 파티클 시스템 에디터
* 포함되는, 자유롭게 에디터를 확장하는더 문서화된 스크립팅 환경
* 애니메이터 와 유저데이터 에디터
* 무료

그것은 일리히트 엔진을 사용해서 썼기 때문에, 그것은일리히트엔진에서 할수 있는 모든 파일을 로드할수 있다. 추가적으로 그것은 COLLADA파일 같은 모든 파일을 익스포트(내보낼) 할수 있고, 더욱이 그것을 파일 형식 변환기로 하는 것.
상세한 기능 리스트들과 링크들을 다운로드 하기위해서 irrEdit website웹사이트에 방문하라.


'기본 카테고리' 카테고리의 다른 글

2009.03.02  (0) 2009.03.30
인생 반전 연습  (0) 2009.03.20
일리히트 엔진 시작하기  (0) 2009.03.19
Irricht엔진튜토리얼 15. LoadIrrFile  (0) 2009.03.19
Irricht엔진튜토리얼 14. Win32Window  (0) 2009.03.19

일리히트 엔진 시작하기

Posted 2007/09/15 21:39 by 수달


원문 : http://irrlicht.sourceforge.net/docu/index.html


일리히트 엔진

- 소개

Irrlicht Engine API 문서에 온걸 환영한다. 여기 당신은 Irrlicht Engine 엔진과 함께 프로그램을 개발하기 위해
필요할 많은 정보를 찾을 것이다. 만약 어떻게 시작하는지 튜토리얼을 찾을려면, 당신은 irrlicht.sourceforge.net 에서
이곳의 홈페이지 또는 examples 디렉토리의 SDK에서 찾을수 있을것이다.

Irrlicht Engine 은 3d엔진을 쉽게 사용할수 있도록 의도되어서,이 문서는 그중에서 중요하다. 만약 당신이
다른 질문이나 제안이 있다면, 엔진의 개발자에게 메일을 보내라, Nikolaus Gebhardt (niko (at) irrlicht3d.org).


- 링크들

Namespaces: 문서를 읽기 시작하기 아주 좋은 곳
Class list: 설명이 포함된 모든 클래스들의 리스트
Class members: 기능이 생각나지 않을때 찾을수 있는 좋은곳


- 짧은 예제

간단한 프로그램, 엔진 시작하기, Quake 2의 에니메이팅된 모델파일과 일치하는 텍스쳐 로딩하기,
블루 배경화면의 앞에 그것을 애니메이팅하고 출력하는것, 유저가 제어할수 있는 3d 카메라를 위치시키는것은
다음에 설명하는 코드처럼 하면 될것이다. 나는 이 예제가 엔진의 사용을 아주 잘 보여준다고 생각한다.

------------------------------------------------------------------------------------------------
#include <irrlicht.h>
using namespace irr;

int main()
{
// start up the engine (엔진을 시작한다)
IrrlichtDevice *device = createDevice(video::EDT_DIRECT3D8,
core::dimension2d<s32>(640,480));

video::IVideoDriver* driver = device->getVideoDriver();
scene::ISceneManager* scenemgr = device->getSceneManager();

device->setWindowCaption(L"Hello World!");

// load and show quake2 .md2 model (quake2 .md2 모델을 로딩하고 보여준다)
scene::ISceneNode* node = scenemgr->addAnimatedMeshSceneNode(
scenemgr->getMesh("quake2model.md2"));

// if everything worked, add a texture and disable lighting
// (만약 모든것이 다 되었다면, 텍스쳐를 추가하고 라이팅을 해제한다)
if (node)
{
node->setMaterialTexture(0, driver->getTexture("texture.bmp"));
node->setMaterialFlag(video::EMF_LIGHTING, false);
}

// add a first person shooter style user controlled camera
// (FPS 스타일 유저조종카메라를 추가한다)
scenemgr->addCameraSceneNodeFPS();

// draw everything (모든것을 그린다)
while(device->run() && driver)
{
driver->beginScene(true, true, video::SColor(255,0,0,255));
scenemgr->drawAll();
driver->endScene();
}

// delete device (장치를 지운다)
device->drop();
return 0;
}

---------------------------------------------------------------------------------

Irrlicht 는 많은 파일포맷들을 자동적으로 로드할수 있고, 상세한 리스트를 위해
irr::scene::ISceneManager::getMesh() 를 볼수 있다.
그래서 만약 당신이 단순한 블루 스크린 배경을 cool Quake 3 Map으로 바꾸고 싶으면,
옥트리에의해 최적화되고, while 루프전 어딘가에 이 코드를 삽입하면 된다.

-----------------------------------------------------------------------
// add .pk3 archive to the file system (.pk3 파일을 파일시스템에 추가한다)
device->getFileSystem()->addZipFileArchive("quake3map.pk3");

// load .bsp file and show it using an octtree
// (.bsp file 을 읽고 옥트리를 사용하여 그것을 보여준다)
scenemgr->addOctTreeSceneNode(
scenemgr->getMesh("quake3map.bsp"));
--------------------------------------------------------------------------

당신이 볼수 있었던 것처럼, 엔진은 네임스페이스들을 사용한다. 엔진의 모든것은 네임스페이스 'irr'에 위치된지만,
또 5개의 서브 네임스페이스들이 있다. 당신은 namespaces page 에서 모든 네임스페이스들의 리스트를 찾을수 있다.
이것은 또 문서를 읽어서 시작하기에 좋은 곳이다. 만약 당신이 항상 네임스페이스 이름들을 쓰는것을 원하지 않는다면
밑의 코드처럼 모든 네임스페이스들을 사용하면 된다.
--------------------------------------------------------------------------
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
--------------------------------------------------------------------------

엔진이 할수 있는게 더 많이 있지만, 나는 이것이 엔진의 기본적인 짧은 개요가 되기를 희망한다.
더 많은 예제들을 원한다면, SDK의 examples directory 안을 보면된다.

'기본 카테고리' 카테고리의 다른 글

인생 반전 연습  (0) 2009.03.20
irrEdit 는  (0) 2009.03.19
Irricht엔진튜토리얼 15. LoadIrrFile  (0) 2009.03.19
Irricht엔진튜토리얼 14. Win32Window  (0) 2009.03.19
Irricht엔진튜토리얼 13. RenderToTexture (+06.08.04)  (0) 2009.03.19

+ Recent posts