Тема: Функция вычисления длины эллипса
Есть ли в AutoCADе функция вычисления длины эллипса?
Мне надо функцию вида:
Lэл=ДлинаЭллипса(НачУгол,КонУгол,ОсьА,ОсьБ) всех этих данных для вычисления длины эллипса достаточно и у меня есть собственные функции вычисления длины эллипса, но все они работают не точно:
Public Function ДлинаЭллипса(vLвыл As Variant, vBразв As Variant, vAlfa1 As Variant, vAlfa2 As Variant) As Variant Dim dblL1A1 As Double, dblL2A1 As Double, dblL1A2 As Double, dblL2A2 As Double, dblСтепень As Double, dblPi As Double 'Вычисление длины эллипса по теореме Пифагора ' dblPi = 4 * Atn(1): dblAlfaRad = dblAlfa1 * dblPi / 180 ' dblL1A1 = Sqr((vLвыл * Cos(dblAlfaRad)) ^ 2 + (vBразв * Sin(dblAlfaRad)) ^ 2) ' dblX1 = dblL1A1 * Cos(dblAlfaRad): dblY1 = dblL1A1 * Sin(dblAlfaRad) ' dblAlfaRad = dblAlfa2 * dblPi / 180 ' dblL1A2 = Sqr((vLвыл * Cos(dblAlfaRad)) ^ 2 + (vBразв * Sin(dblAlfaRad)) ^ 2) ' dblX2 = dblL1A2 * Cos(dblAlfaRad): dblY2 = dblL1A2 * Sin(dblAlfaRad) ' ДлинаДамбы = Sqr((dblX2 - dblX1) ^ 2 + (dblY2 - dblY1) ^ 2) 'Вычисление длины эллипса по формуле Saltera dblPi = 4 * Atn(1): dblСтепень = Log(2) / Log(dblPi / 2) dblL1A1 = vAlfa1 * vLвыл * dblPi / 180 dblL2A1 = vAlfa1 * vBразв * dblPi / 180 dblL1A2 = vAlfa2 * vLвыл * dblPi / 180 dblL2A2 = vAlfa2 * vBразв * dblPi / 180 ДлинаЭллипса = ((dblL1A2 ^ dblСтепень + dblL2A2 ^ dblСтепень) / 2) ^ (1 / dblСтепень) - ((dblL1A1 ^ dblСтепень + dblL2A1 ^ dblСтепень) / 2) ^ (1 / dblСтепень) End Function
Вычисленная длина эллипса по этим формулам не совпадает с длиной эллипса получаемой командой "list". Помогите найти правильную Автокадовскую формулу и функцию вычисления длины эллипса!