전체 글 725

PyQt 와 Qt Designer 를 이용한 Python GUI 애플리케이션 작성하기

* PyQt 내려받기: http://www.riverbankcomputing.co.uk/software/pyqt/download (Qt Designer 의실행 파일은 %Python27_HOME%\Lib\site-packages\PyQt4\Designer.exe 이다.) Qt Designer 는 Visual Studio 의 Visual Basic 개발 환경과 비슷한 Python GUI 개발 도구이다. 다음은 책 Hello World! Second Edition: Computer Programming for Kids and Other Beginners 의 제 20 장에 소개되어 있는 예제를 한국어로 번안한 것이다. Qt Designer 를 실행하여 다음과 같이 "새 폼" 창에서 "Main Window" 를 ..

Octave 를 이용하여 정사각형 그리기

명령 프롬프트> octave -qi octave:1> x = [0, 1, 1, 0, 0]; octave:2> y = [0, 0, 1, 1, 0]; octave:3> plot(x, y), axis([-1,2, -1,2]) octave:4> axis equal octave:5> close octave:6> plot(x, y), axis equal, axis([-1,2, -1,2]) octave:7> close * 위의 3번 줄 명령으로 정사각형을 그렸지만, aspect ratio 가 맞지 않아 직사각형으로 보인다, * 그래프 창을 그대로 둔 채 위의 4번 줄 명령울 내리면, 그래프 창이 다시 열리면서 정사각형이 그려진다. (위의 3번과 4번 줄 대신 6번 줄 하나만 내려도 된다. close 는 그래프 창을 ..

Octave 로 구하는 이차방정식의 근

프롬프트> octave -qi octave:1> # Let's find roots of the equation x^2 - 5 = 0. octave:1> c = [1, 0, -5]; # 다항식의 계수들 octave:2> roots(c) ans = -2.2361 2.2361 octave:3> x = roots(c); octave:4> x(1) ans = -2.2361 octave:5> x(2) ans = 2.2361 octave:6> sqrt(5) ans = 2.2361 octave:7> format long octave:8> x x = -2.23606797749979 2.23606797749979 octave:9> x(1), x(2) ans = -2.23606797749979 ans = 2.23606797..

Octave 로 계산 하는 집합 연산 몇 가지

프롬프트> octave -qi octave:1> a = [1, 2, 3]; octave:2> b = [5, 3, 4, 3]; octave:3> union(a, b) # 합집합 ans = 1 2 3 4 5 octave:4> intersect(a, b) # 공통집합 ans = 3 octave:5> setdiff(a, b) # 차집합 ans = 1 2 octave:6> setdiff(b, a) # 차집합 ans = 4 5 octave:7> setxor(a, b) # 대칭차(symmetric difference) ans = 1 2 4 5 octave:8> unique(b) # 중복 허용 않는 집합 ans = 3 4 5 octave:9> ismember(a, b) # 원소 확인 ans = 0 0 1 octave:..

Cygwin 의 Octave 로 그린 평면 매개곡선을 jpg 파일로 저장하기

Cygwin 의 터미널에서 $ xinit 하여 X 터미널을 열고, X 터미널의 쉘 프롬프트에서 $ octave -qi 하여 Octave 를 시작하여 다음 Octave 명령들을 입력한다. (saveas() 명령으로 그림을 파일로 저장할 수 있다.) octave:1> t = linspace(0, 2*pi, 500); octave:2> x = cos(t).**3; octave:3> y = sin(t).**3; octave:4> plot(x, y); # => error! octave:5> setenv("GNUTERM", "X11"); # 윈도우즈에서는 graphics_toolkit gnuplot; octave:6> plot(x, y); octave:7> saveas(1, "figure_asterisk.jpg",..

Octave 를 이용하여 비선형 연립미분방정식의 해곡선 그리기

다음 연립 미분방정식과 초기조건 x(0) = 1, y(0) = 2 를 만족하는 두 함수 x = x(t), y = y(t) 의 그래프를 그려보자. dx/dt = r*x*(1 -x/k) -a*x*y/(1 + b*x) dy/dt = c*a*x*y/(1 + b*x) - d*y 단, 여기서 r = 0.25 k = 1.4 a = 1.5 b = 0.16 c = 0.9 이다. 즉, dx/dt = 0.25*x*(1 -x/1.4) - 1.5*x*y/(1 + 0.16*x) dy/dt = 3*1.5*x*y/(1 + 0.16*x) - 0.8*y [Octave 소스파일: f.m]-------------------------------- function xdot = f (x, t) r = 0.25; k = 1.4; a = 1.5;..

Octave 를 이용하여 간단한 그래프 그리기

plot 명령을 내리기 전에 graphics_toolkit gnuplot 명령을 먼저 내린다. 명령 프롬프트> octave -qi octave:1> graphics_toolkit gnuplot octave:2> x = linspace(0,1,400); octave:3> y = x.^2; octave:4> plot(x,y) * 위의 코드로 그래프 창이 나타나지 않을 경우 다음 코드를 시도한다. 명령 프롬프트> octave -qi octave:1> graphics_toolkit gnuplot octave:2> setenv('GNUTERM','wx'); octave:3>x = linspace(0,1,400); octave:4>y = x.^2; octave:5> plot(x,y) Cygwin 의 X 터미널에서 ..

IntelliJ IDEA 를 이용하여 작성한 Groovy 애플리케이션

JetBrasins 사의 인텔리제이 IDE 는 매우 유명한 자바 IDE 중 하나이다. 상용과 커뮤니티 용이 있는데 인텔리제이 IDE 내려받기에서 내려받으면 된다. IDEA 를 처음 실행할 때 Java 홈 디렉토리와 Groovy 홈 디렉토리를 지정하고, IDEA 창에서는 약간의 아이콘 메뉴를 지정한다. 새 Project 를 생성하고 src 폴더에 Groovy 클래스 GroovyHello 를 생성하여 아래와 같이 작성한다. (Java 소스와 거의 유사한 Groovy 소스이다.) 윈도우즈의 파일 인코딩이 MS949 라 하더라도 IDEA 는 UTF-8 이 디폴트 인코딩이다. Build 메뉴에서 빌드한 후, Run 메뉴에서 실행한다. 빌드하여 생성된 GroovyHello.class 를 명령창에서 java 커맨드로..

한글 윈도우 8.1 의 Cygwin64 에서 javac 와 java 사용할 때의 인코딩 옵션

소스 파일 Hello.java 는 (BOM 마크 없는) UTF-8 인코딩으로 저장되어 있다. 디폴트 인코딩이 한글 윈도우 8.1 은 MS949 이고, Cygwin64 는 UTF-8 이다. (Cygwin64 의 LANG 환경변수는 컴파일과 실행에 별로 상관 없는 듯 하다.) Cygwin64 에는 자바가 설치되어 있지 않고 윈도우의 C:\Java7 폴더에 자바가 설치된 것으로 간주한다. $ export PATH=/cygdrive/c/Java7/bin:$PATH $ export JAVA_HOME=/cygdrive/c/Java7 $ echo $JAVA_HOME /cygdrive/c/Java7 $ which java /cygdrive/c/Java7/bin $ which javac /cygdrive/c/Java7/..