Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 팁&트릭
Delphi Programming Tip&Tricks
[6] [팁] 기울어진 타원 그리는 함수...
박종민.BacTeria [bacteria] 6133 읽음    2002-03-05 10:55
안녕 하세요?

BacTeria 박종민 입니다.

오늘의 팁은 Canvas에 타원 그려주는 함수 입니다.

마지막 인자에 각도에 원하는 라디안 값을 넣어주면 기울어진 타원을 그려줍니다.

그럼 이만...

오늘 하루도 열심히 사세요~

procedure RotatedEllipse(Canvas: TCanvas; Xc, Yc, Ra, Rb: Integer; Angle: Double);
// Canvas is the canvas on which to draw
// (Xc,Yc) is the center of the ellipse, in pixels
// Ra and Rb are the major and minor axes, in pixels
// Angle is the angle of the major axis with respect to the x-axis,
// in radians
var
  I, N: Integer;
  Incr, X, Y, Ca, Sa: Double;
begin
  N := Round(0.5 * Pi * (Ra + Rb));

  if N < 10 then N := 10;

  Incr := 2 * Pi / N;
  Ca := Cos(Angle);
  Sa := Sin(Angle);
  Canvas.MoveTo(Xc + Round(Ra * Ca), Yc + Round(-Ra * Sa));

  for I := 1 to N do
  begin
    X := Ra * Cos(Incr * I);
    Y := Rb * Sin(Incr * I);
    Canvas.LineTo(Xc + Round(X * Ca + Y * Sa), Yc + Round(-X * Sa + Y * Ca));
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  RotatedEllipse(Form1.Canvas, 200, 200, 100, 50, math.DegToRad(45));
end;

+ -

관련 글 리스트
6 [팁] 기울어진 타원 그리는 함수... 박종민.BacTeria 6133 2002/03/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.