2013-05-21 5 views
2

저는 좌표와 각도를 가지고 있습니다. 이제 지정된 각도까지 특정 길이까지 좌표에서 선을 그립니다. 나는 이것을 어떻게 얻을 수 있을까 ?? 누군가 아이디어를 줄 수 있습니까?QT에서 각을 그리는 방법?

답변

7

아서의 방법 각도 계산은 정확하지만 실제로 QT 특히, 특정 각도의 연신 라인 내장 방법을 제공 QLineF 헤더의 QLineF 클래스의 기능 등가입일

#include <QLineF> 

void AngleDemo::paintEvent(QPaintEvent *) 
{ 
    QPainter painter(this); 

    painter.setPen(QPen(Qt::black,1)); 

    /* Create the line object: */ 
    QLineF angleline; 

    /* Set the origin: */ 
    angleline.setP1(QPointF(80,80)); 

    /* Set the angle and length: */ 
    angleline.setAngle(45); 
    angleline.setLength(50); 

    /* Draw the line: */ 
    painter.drawLine(angleline); 
} 

:

선의 각도를 지정된 각도 (도)로 설정합니다. 그러면 선이 주어진 각도를 갖도록 선의 두 번째 점의 위치가 변경됩니다.

양수 값은 반 시계 방향을 의미하고 음수 값은 시계 방향을 의미합니다.

0 도가 3시 위치에 있습니다.

이 기능은 Qt 4.4에서 처음 소개되었습니다.

3

좌표 당신의 가정은 (X + endx, y를 +의 ENDY)에 (X, Y)에서 이동합니다 xy

double endx = cos(angle)*length; 
double endy = sin(angle)*length; 

귀하의 라인으로 구성되어 있습니다.

는,도에이 같은 공 (360)을 통해,이 같은 변환하고, 위의 라디안을 사용하는 경우, 그래서 라디안으로 당신의 angle 요구를 잊지 마세요 :의

double pi = acos(-1); 
double radians = angle/180.0 * pi; 
+1

감사합니다. 아서. 나는 이것을 점검 할 것이다. – joki

+0

@ joki이 방법으로 문제가 해결되면 동일한 문제가 발생할 수 있습니다. – Callat

+1

예 @KazRodgers !! 이것은 기대를 충족시킵니다 !! – joki

관련 문제