2015-03-19 1 views
0

Я создал прямоугольник на холсте. Я хотел знать, как мы можем поворачивать прямоугольник на 30 градусов.Как повернуть прямоугольник

m_ctrlChart.GetCanvas().Rectangle(10, 50, 60, 100); 

Я не могу найти API, который поможет мне повернуть прямоугольник.

+0

Ответ Yeray является самым простым. Однако вы можете также нарисовать его на холсте с помощью методов Polygon или Polyline. –

ответ

1

Я боюсь, что функции для этого являются внутренними. Однако вы можете использовать инструмент Rectangle, поддерживающий вращение. То есть:

TChart1.Tools.Add tcRectangle 
    TChart1.Tools.Items(0).asRectangle.Shape.Angle = 30 
    With TChart1.Tools.Items(0).asRectangle 
    .Shape.Transparency = 0 
    .Shape.Color = vbRed 
    .Left = 10 
    .Top = 50 
    .Width = 50 
    .Height = 50 
    End With 

Конечно, вы всегда можете вычислить координаты самостоятельно, используя тригонометрические функции, как @ сельва-Кумар says.

0

Easiest way to rotate a rectangle это может помочь вам еще, вы можете написать функцию, используя math.h (тригонометрические функции) и уравнение, заданное в сообщении.

+0

Спасибо за ваш ответ. Я хотел нарисовать фигуру Diamond и треугольник на графике. есть ли способ, который мы можем нарисовать в графе? – Prabhat

+0

Вы можете использовать Rhombus как Diamond. Просто измените координаты поиска как (0,0), (0,3), (3,0), (0, -3) и используя формулу расстояния между двумя точками, которую вы можете создать Rhombus. – Selva

+0

m_ctrlChart.AddSeries (scPoint); \t index = m_ctrlChart.Series (lSeries) .AddXY (5, 9, "", RGB (255, 0, 255)); CSeriesPointerItems pointeritPoint = m_ctrlChart.Series (lSeries) .GetAsPoint(). GetPointer(); pointeritPoint.SetSizeFloat (10); pointeritPoint.SetVisible (TRUE); pointeritPoint.SetStyle (psCircle); m_ctrlChart.Series (lSeries) .SetColor (RGB (255, 0, 255)); – Prabhat