C++ Builder/TCanvas > 원을 그려서 반경 방향으로 선을 그립니다.
6911 단어 TCanvascppBuilder#migrated
C++ Builder XE4
Unit1.cpp
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::drawRadialLine(double angle_deg)
{
TRect R = Image1->ClientRect;
double radius = (R.right - R.left) / 2;
int center_x = (R.left + R.right) / 2;
int center_y = (R.top + R.bottom) / 2;
Image1->Canvas->MoveTo(center_x, center_y);
int to_x = radius * Cos(angle_deg * M_PI / 180.0);
int to_y = radius * Sin(angle_deg * M_PI / 180.0);
to_x += center_x;
to_y += center_y;
Image1->Canvas->LineTo(to_x, to_y);
}
void __fastcall TForm1::drawOnImage(void)
{
// 1. draw circle
TRect R = Image1->ClientRect;
// X1, Y1 X2 Y2
Image1->Canvas->Ellipse(R.left, R.top, R.right, R.bottom);
// 2. draw line in radial direction
drawRadialLine(/*angle_deg=*/30.0);
drawRadialLine(/*angle_deg=*/140.0);
drawRadialLine(/*angle_deg=*/250.0);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
drawOnImage();
}
//---------------------------------------------------------------------------
TImage의 크기는 W250 x H250.
0도 정의: 중심점에서 오른쪽으로 수평선 그리기
거기에서 시계 방향으로 각도를 취하고 있다.
Reference
이 문제에 관하여(C++ Builder/TCanvas > 원을 그려서 반경 방향으로 선을 그립니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/7of9/items/db4e1fed499827bf1bb0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)