Игорь @MrLantasire
Инженер
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Registered
- Activity
Specialization
Embedded Software Engineer, Systems Analyst
Lead
CNC programming
Software development
Maths
Algorithms and data structures
Applied math
C
Python
C++
Kotlin
Android Studio
z = x + y*i
arg(z) вычисляется следующими способами:
arg(z) = arccos(x / |z|)
arg(z) = arcsin(y / |z|)
arg(z) = arctg(y / x)
Опуская вывод после fi = Arg(a/b) можно получить следующее:
fi = arctg( (xb * ya - xa * yb) / (xa*xb + ya*yb) )
Есть вариант решения задачи на плоскости через комплексные числа. Угол, с учётом знака, между комплексными числами a и b будет являться аргумент комплексного числа c, где c = a/b.
Другими словами fi = Arg(a/b).
Решал я подобные задачки как раз для ЧПУ МНК. Есть наработки по аппроксимации плоскостью, прямой и окружностью.
Для данного случая предлагаю также посмотреть на варианты использовать D = 1, тогда нормаль получится ненормированная и посмотреть вычисление тензора моментов и инерции облака точек.
Литература, которая мне очень помогла:
Фокс А., Пратт М. Вычислительная геометрия
Рашевский П.К. Риманова геометрия и тензорный анализ