자전거 타고 오스트리아 빈 시내 구경하기.

빈에 도착한 첫날은 대중교통 24시간 이용권을 끊고 여기저기 다녔어요.
시내에 유난히 자전거를 타고 다니는 사람이 많더라고요.
날씨가 화창해서 저도 자전거로 돌아다니고 싶어졌습니다.
보통 자전거를 빌리려면 대중교통 요금보다 비싼 편이지요.

정류소-'빈 자전거 여행(City bike wien)'

하지만 빈에는 도시 자전거가 있습니다!
자전거 빌리는 기계에서 바로 등록이 돼요.
단, 등록하려면 세 가지(빈 도시 자전거 카드·오스트리아 은행 카드·신용카드) 중 하나가 필요해요.
저는 신용카드를 이용해 등록했습니다.
등록비 1유로만 내면, 빌릴 때마다 한 시간은 무료에요.
보통 자전거를 타고 목적지에 도착하는데 한 시간 이내이니,
딱히 돈이 더 들어갈 일이 없지요.
혹시 한 시간을 넘게 타더라도 가격이 저렴합니다.
그렇지만 네 시간을 넘기면 안 돼요.
자전거를 잃어버린 것으로 간주해서 육백 유로를 내야 하거든요.^^;
시내에 자전거 도로가 잘 되어있어서 페달 밟는 맛이 납니다.
도로가 가장 잘 닦인 곳은 시 중심의 링(Opernring·Burgring등) 부분이에요.
목적지가 외곽이라면, 링을 타고 돌다가 빠지면 편해요.
자전거 정류소가 좀 띄엄띄엄 있는 게 좀 아쉽지만, 이 정도면 감지덕지합니다.

자전거가 한 가득-'빈 자전거 여행(City bike wien)'

한 가지 염두에 두어야 할 것은 인기 지역에 별생각 없이 자전거를 몰고 가면 주차 공간이 없다는 겁니다. ^^;
자동차 타고 번화가에 나가면 주차에 애를 먹잖아요.
빈 도시 자전거도 똑같아요.
목적했던 정류소에 주차 공간이 없다면, 근처의 다른 정류소를 찾아 주차해야 하죠.
하루는 거의 삼십 분을 정류소 찾아 헤매었지만,
빈에서 지내는 동안 딱 한 번 뿐이었어요.
오스트리아 빈을 두루 구경하고 싶으시다면, 도시 자전거를 이용해 보는 거 어떠세요?

오스트리아 빈 도시 자전거 웹페이지



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!

LWJGL 이동과 회전(LWJGL - Rotation and Picking)[LWJGL,이동,회전,Rotation and Picking,lwjgl.org,Lightweight Java Game Library]

이미지출처 : www.lwjgl.org

LWJGL 이동과 회전 그리고 픽킹(LWJGL - Rotation and Picking)

물체의 이동과 회전


Code:

GL11.glTranslatef(this.xoff, this.yoff, this.zoff-this.centerAvgXYZ);
        GL11.glRotatef(this.xrot, 1.0f, 0.0f, 0.0f);
        GL11.glRotatef(this.yrot, 0.0f, 1.0f, 0.0f);


Picking


Code:

public void SelectObjects(int x, int y) {
      int hits;
      int[] viewport = new int[4];
      int buffer[] = new int[256];
      IntBuffer selectBuff = ByteBuffer.allocateDirect(1024).order(ByteOrder.nativeOrder()).asIntBuffer();
        IntBuffer vpBuffer = ByteBuffer.allocateDirect(64).order(ByteOrder.nativeOrder()).asIntBuffer();
      GL11.glGetInteger(GL11.GL_VIEWPORT, vpBuffer);
      vpBuffer.get(viewport);
      GL11.glSelectBuffer(selectBuff);
      GL11.glMatrixMode(GL11.GL_PROJECTION);
      GL11.glPushMatrix();
      GL11.glRenderMode(GL11.GL_SELECT);
      GL11.glLoadIdentity();
      GLU.gluPickMatrix((float)x,(float)(viewport[3]-y), 5.0f, 5.0f, viewport);    
        GLU.gluPerspective(45.0f, ratio, 0.001f, 100.0f);
           //Rectangle rect = this.canvas.getClientArea();              
          // ratio = (float) rect.width / (float) rect.height;
     
      GL11.glMatrixMode(GL11.GL_MODELVIEW); // 물체를 그려줄때는 다시 모델뷰로..
      drawScatterPlot();                                  // 물체를 그려주고,
      GL11.glRotatef(this.xrot, 1.0f, 0.0f, 0.0f);  // 그 후에 회전을 해준다.
        GL11.glRotatef(this.yrot, 0.0f, 1.0f, 0.0f);
       
      hits = GL11.glRenderMode(GL11.GL_RENDER);
      System.out.println("Hits : "+hits);
      selectBuff.get(buffer);
      if(hits>0) {
        int selectedObjID = buffer[3];
      int depth = buffer[1];
                      for (int i = 1; i < hits; i++) {
                if (buffer[i * 4 + 1] < (int) depth) {
                  selectedObjID = buffer[i * 4 + 3];
                      depth = buffer[i * 4 + 1];
                }
          }
          ProcessSelect(selectedObjID);
      }
      GL11.glMatrixMode(GL11.GL_PROJECTION);            
      GL11.glPopMatrix();            
      GL11.glFlush();
      GL11.glMatrixMode(GL11.GL_MODELVIEW);              
  }



by


Tags : , , , , , , , , ,

  • 재미있게 읽으셨나요?
    광고를 클릭해주시면,
    블로그 운영에 큰 도움이 됩니다!