Q&A

  • 이미지 회전 질문


안녕하세요!! 급하게 이미지 회전 관련 처리 때문에 문의 합니다.
포함된 그림과 같이 image 컴포넌트를 써서 처리 하고 있는데 문제는
그림에 보시는 배의 각도가 절대 좌표계에서 시계방향 30도를 돌리고 바람이 배쪽으로 시계 방향 30도 들어온다고 생각한다면 배의 이미지 컴포넌트는 Angle만 30도 돌리면 그림과 같이 되지만...

문제는 바람이 30도 배쪽으로 들어오는 좌표를  표현 하자니 어렵네요...

그리고 바람은 배의 세로 중앙선을 기준으로 오른쪽 30도 으로 들어오는것은 +30도 이고 왼쪽으로 들어오는것은 -30도 표현됩니다.

그러니까 절대 좌표계와 상대좌표계가 혼용 됐나 봅니다.

허걱~~

또한 바람은 배의 뒤쪽의 하얀 부분에 화살표가 만나야 합니다.

그래서 다음과 같이 좌표변환을 해 보았는데 안되네요~~

좋은 방법 부탁합니다.
Img1_Angle은 배가 도는 각도이고
중점은 배 이미지의 중앙을 잡았습니다.
그리고 이동하려고 하는 정점 (바람)의 좌표는 이미지2로 해서
Image의 Left, Top을 잡았습니다.

그런데 이식으로 돌리니까 잘 안나오네요~~

어디가 잘못 됐는지  좋은 의견 부탁합니다.

Img1_Angle := Psi_0*PI/180*-1;

  R_Img_Ox1 := Round(Rotimg1.Left + Rotimg1.Width/2); //중점

  R_Img_Oy1 := Round(Rotimg1.Top + Rotimg1.Height/2); //중점

  R_Img_Ox2 := Round(Rotimg3.Left); //정점

  R_Img_Oy2 := Round(Rotimg3.Top); //정점

  R_Img_Nx := Round((R_Img_Ox2 * Cos(Img1_Angle)) -  (R_Img_Oy2 * Sin(Img1_Angle)) -

              (R_Img_Ox1 * Cos(Img1_Angle)) +  (R_Img_Oy1 * Sin(Img1_Angle)) +  R_Img_Ox1);


  R_Img_Ny := Round((R_Img_Ox2 * Sin(Img1_Angle)) + (R_Img_Oy2 * Cos(Img1_Angle)) -

              (R_Img_Ox1 * Sin(Img1_Angle)) - (R_Img_Oy1 * Cos(Img1_Angle))+ R_Img_Oy1);

  Rotimg3.Left := R_Img_Nx;

  Rotimg3.Top := R_Img_Ny;

2  COMMENTS
  • Profile
    석주현 2004.05.23 04:54
    음 뭘 말씀하시는 건지 정확하게 모르겠네요..

    암튼 불어오는 바람의 방향을 표시하시고 싶으신 거 같은데

    간단한거 같은데..

    음 그러니깐 보면 알지만

    배의 방향에 + 180도 에서 오른쪽이면 - 쎄타
                                       왼쪽이면    + 쎄타

    이렇게 하면 될 것 같은데요.. --;;

    그렇게 해서 그냥 화살표의 시작점을 배의 가운데로 옮겨주면되죠..

    음 이거 아닌지 --;;
  • Profile
    다롱이 2004.05.23 06:11


    RE ; 대충 이해를 하신거 같은데요...
           화살표가 이미지 컴포넌트로 되어 있어요.
           이걸 어떻게 배가 옮겨질때마다 이것도 그것에 맞춰서 변해야 하는데
           어떻게 하면 좋을지~~
           그냥 배가 한번만 움직이면 쉽지요...
           내가 Input 하고 싶을 때마다 바뀌어야 하는데...
          
    • 안복환
    • 2004.05.22 20:29
    • 1 COMMENTS
    • /
    • 0 LIKES
    • [勳]후니
      2004.05.22 20:56
      join에서 인어 조인 말고 left, right join을 이용하세요 SELECT A.ADATE, A.ACODE, A.APRICE, B.BP...
    • [勳]후니
      2004.05.22 20:58
      밑에 작성하신 함수로 테스트 해보셨는지..?? 그대로 하면 될꺼 같은데요.. 폼 생성하고 생성된 넘을...
    • 석주현
      2004.05.23 05:13
      각각의 폼에 공통적인 부분을 하나로 한 폼을 만들고요.. 그걸 상속 받아서 작업하시면 됩니다.. 그...
    • 마이다스
      2004.05.23 01:36
    • 다롱이
    • 2004.05.22 19:48
    • 2 COMMENTS
    • /
    • 3 LIKES
    • 석주현
      2004.05.23 04:54
      음 뭘 말씀하시는 건지 정확하게 모르겠네요.. 암튼 불어오는 바람의 방향을 표시하시고 싶으신 거 같은...
    • 다롱이
      2004.05.23 06:11
      RE ; 대충 이해를 하신거 같은데요...        화살표가 이미지 컴포넌...
    • 한상훈
    • 2004.05.22 16:16
    • 0 COMMENTS
    • /
    • 0 LIKES
    • saxoji
    • 2004.05.22 13:57
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2004.05.22 04:29
      안녕하세요. 최용일입니다. 입력하는 값이 문자열라면 몰라도 숫자라면 구분하는 방법이 없습니다. 컴퓨...
    • 전춘영
      2004.05.22 05:16
      답변감사드립니다. 그런데 최용일님의 말씀대로 TRegistry.WriteInteger를 이용해서 10000 이라는 숫자를...
    • 최용일
      2004.05.22 08:57
      안녕하세요. 최용일입니다. 흠... 무슨 말씀이신지 이해하기가 힘드네요... 아까도 말씀드렸지만 컴...
    • 바다사랑
      2004.05.22 17:12
      트라이아이콘 과 타이머.. 컴퍼넌트를 사용해서.. 항상 시스템에 상주시키면되겠네요.. 해당컴프넌트...
    • 이승준
      2004.05.22 19:10
      팁정보 강민주님이 올리신 겁니다..그런데 아래에 isDir가 있는데 어떻게 사용하는건지 자꾸 여기서 에러...
    • 서동혁
    • 2004.05.22 03:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2004.05.22 04:24
      안녕하세요. 최용일입니다. Low-level함수써서 하지 마시고 델파이에서 지원하는 편리한 High-level 클...
    • 2004.05.22 01:05
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 바다사랑
      2004.05.22 17:14
      질문의 뜻을 이해하지 못하겠네요... Preview 에서 프린터 설정을 바꿨는데도 그렇다는건지...
    • 2004.05.22 18:05
      제가 잘못 썼나 보네요. 죄송;; 님 말씀대로 Preview 에서 다른 프린터로 바꿔도 기본 프린터로 인쇄가 ...
    • 착한천사
      2004.05.24 19:49
      data loader라는 것이 양쪽(oracle, mysql)에 있는걸로 알고 있습니다. oracle의 내용을 특정 구분자로 da...
    • Del_WOW
    • 2004.05.21 21:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김정은
      2004.05.21 23:20
      모달 꼭 써야하나요? 전 그냥 프리뷰 만 하는데...   if OpenDialog.Execute then begin ...
    • 최용일
      2004.05.22 04:52
      안녕하세요. 최용일입니다. 상당히 복잡해요. 양도 많고 알아야 할것도 많고... 기본적으로 COM에 대해...
    • 김민우
    • 2004.05.21 19:44
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 바보래요
      2004.05.21 19:57
      제가 생각하기론 대략 작업 내용이 서버에 있는 디비를 로칼에 복사한후 작업을 해서 서버로 다시 보내...
    • 김민우
      2004.05.21 22:36
      제어 PC가 두대가 있습니다. 한대는 사용자가 주로 이용하는 Main PC이고 다른 Sub PC는 만약에 메인...
    • 바보래요
      2004.05.22 00:42
      파일로 복사가 아닌 자료만 복사하면 안되나요? 당연히 파일로 하면 사용하고 있을경우는 복사할수 ...
    • 김민우
      2004.05.22 04:20
      ...
    • 바보래요
      2004.05.21 19:14
      더블클릭이 안되는 이유가 제 생각에는 각각이 클릭이벤트를 발생시키기 때문인것 같거든요... 버...
    • 상현
    • 2004.05.21 18:29
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2004.05.21 20:27
      안녕하세요. 최용일입니다. 여러가지 방법이 있습니다. 아래는 그중 하나입니다... function ShortTo...
    • 상현
      2004.05.21 21:27
      감사함다~ 결과값은 원하는데로 나오는디... 한바퀴 마라톤을 뛰는듯 하군요... ^^
    • 조상일
      2004.05.21 06:52
      GetForegroundWindow 함수가 있었네요.. 무한삽질중 건졌습니다.. 우헤헤.. ^^ 그럼.. 계속 즐~~&nb...
    • 안영제
      2004.05.21 06:10
      http://swiss.torry.net/vcl/mmedia/other/tlame.zip
    • Maverick
      2004.05.21 18:45
      앗, 정말 감사합니다... 이런 사이트가 있는줄은 몰랐네요... 그런데 dpk가 설치가 안 되네요... 이...
    • 최용일
      2004.05.21 20:31
      안녕하세요. 최용일입니다. MMTools쓰신다고 하셨죠? MMTools패키지에서 그렇게 하는겁니다. 뭐 복사...
    • Maverick
      2004.05.22 01:21
      감사합니다. 가르쳐 주신대로 했더니 컴포넌트는 잘 설치가 되었습니다. TLame이라는 컴포넌트를 설치했는...
    • 최용일
      2004.05.22 02:06
      안녕하세요. 최용일입니다. TLame이라는 것은 제가 써본적이 없어서 어떻게 하는지는 모르구요... AS...
    • 이현정
    • 2004.05.21 03:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김길현
      2004.05.21 08:51
      메뉴에서   File -> New -> Other 를 하시면   많은 아이콘들 중에 Consol&n...
    • 바다사랑
      2004.05.21 17:05
      한글은 2바이트문자이기 때문에 ㄱ 으로 시작되는 문자를 찾기란 힘들것 같네요... 차라리... 가 . 나 . 다...
    • 오광택
      2004.05.21 19:30
      ^^ 제가 무지해서요..답변에 감사합니다. 그럼  ㄱ 이란 문자를 코드화 시킬수 있나요? ...