Определение педальной кривой для первоначальной давать не будем, сразу перейдем к делу. В текущей точке окружности (пробегаемой в цикле по всей окружности) проведем касательную линию, а потом из фиксированной точки (в нашем случае лежащей на окружности) проводим перпендикуляр к этой касательной. Совокупность этих перпендикуляров огибает, как вы уже догадались, кардиоиду. Это в частном случае расположения фиксированной точки на окружности, при смещении этой точки внутрь окружности или наружу ее получим все семейство Улитки Паскаля. В приведенной программе все также счетчик цикла f центральный угол в градусах, t он же в радианах, beta угол наклона касательной в соответствующей точке цикла, k тангенс этого угла. Уравнение лини, как известно, y=kx+b, для каждой касательной находим b=y-kx. Для взаимно перпендикулярных прямых k1=-1/k, а b1=0 так как все перпендикуляры проходят через точку у которой y= 0. Решая совместно уравнения касательной и перпендикуляра к ней, находим координаты точки пересечения и рисуем в них маленький красный кружок. Эти кружки и нарисуют нам педальную кривую к окружности относительно точки.
Cls Form1.ScaleMode = vbPixels pi = 4 * Atn(1) scal = 15 r = 180 a = 0 * r DrawWidth = 1 Circle (190 + r, 250), r, RGB(0, 0, 200) For f = 1 To 720 Step 3 t = f * pi / 180 x = r * (1 + Cos(t)) y = r * Sin(t) beta = pi / 2 + t k = Tan(beta) b = y - k * x k1 = -1 / k b1 = k1 * a X1 = (b1 - b) / (k - k1) Y1 = k1 * X1 + b1 red = 255 green = 0 blue = 0 col = RGB(red, green, blue) Circle (X1 + 190, Y1 + 250), 3, col ' Точка пересечения красная Circle (x + 190, y + 250), 3, RGB(0, 155, 150) 'Точка на круге голубая Line (190 - a, 250)-(X1 + 190, Y1 + 250), RGB(0, 155, 0) Line (x + 190, y + 250)-(X1 + 190, Y1 + 250), RGB(0, 55, 150) Next f