월요일, 9월 29, 2008

복분자와 부실한 허리

복분자 욕심에 허리 삐끗..

올 초쯤 복분자를 근에 칠천원씩 구입하고,
큼지막한 술통에 차곡 차곡 설탕과 함께 술을 부어놓은 복분자가
지금쯤 맛있게 익었을것이라는 누님의 말에
시골에 내려간 김에 겸사 겸사 싣고 올라왔다.

실을때는 듬직한 조카녀석이 힘을 썼는데..
막상 내리는게 문제였다.

역시나 부실한 허리가 삐끗했다.

아침부터 찜질하고, 침맞고 에그~~

한 일주일은 재활운동도 포기해야 할듯하고,

설상가상으로

한의사님 曰 "당분간 술은 마시지 마세요."

술 욕심에 당분간은 금주라니... 나원참!!!

토요일, 9월 27, 2008

Draw Bezier curved line


Bezier 곡선 그리기

private void drawBezier(GC g, Point startPt, Point startCtrlPt,
            Point endPt, Point endCtrlPt, double step) {
        BezierDimension x = new BezierDimension(startPt.x, startCtrlPt.x,
                endCtrlPt.x, endPt.x);
        BezierDimension y = new BezierDimension(startPt.y, startCtrlPt.y,
                endCtrlPt.y, endPt.y);

        double t = 0;
        Point midPt = startPt;

        while (t < 1) {
            Point nextPt = new Point(x.getValue(t), y.getValue(t));

            g.drawLine(midPt.x, midPt.y, nextPt.x, nextPt.y);
            midPt = nextPt;
            t += step;
        }
        g.drawLine(midPt.x, midPt.y, endPt.x, endPt.y);
    }



public class BezierDimension {
   
    double a, b, c, d;

    public BezierDimension(int p0, int p1, int p2, int p3) {
        d = p0;
        c = 3 * (p1 - p0);
        b = 3 * (p2 - p1) - c;
        a = p3 - p0 - c - b;
    }

    public int getValue(double t) {
        // added 0.5 so that floor is actually rounding
        return (int) (a * t * t * t + b * t * t + c * t + d + 0.5);
    }
}