李西青
Просветленный
(42571)
7 лет назад
Зафиксируй центр окружности, вокруг которого крутишься.
Например
x0 = x1+R
y0 = y1
и дальше в цикле
x1 = x0 - R cos (angle * pi/180)
y1 = y0 + R sin (angle * pi/180)
Либо как у тебя, но там должен стоять не (67) * cos/sin, а (67 * pi / 180) * cos/sin
И надо считать цислах с плавающей точкой, иначе из-за округления очень быстро получится пакость
Иван ИвановМудрец (17793)
7 лет назад
А как считать в числах с плавающей точкой, если координаты могут быть только целыми числами?
Пытался сделать что-то такое:
Dim angle As Integer
angle = angle + 1
If angle >= 360 Then angle = 0
Me.LineShape1.X1 = LineShape1.X1 + Math.Round(67 * Math.Cos(angle * Math.PI / 180))
Me.LineShape1.Y1 = LineShape1.Y1 - Math.Round(67 * Math.Sin(angle * Math.PI / 180))
Но ничего не получилось. Линия поворачивается, но с каждым шагом все меньше. И в конце концов устремляется к определенному значению координата X1 Y1
Как сделать, чтобы второй конец линии шел строго по кругу с радиусом 67пкс?