Построение графика в полярных координатах - VB

Узнай цену своей работы

Формулировка задачи:

Подскажите, пожалуйста, как можно реализовать построение графика в полярных координатах в элементе PICTURE, если задан массив комплексных данных A(+-a+-bi) или значения амплитуды |A| и значения угла arctg(im(A)/re(A)
но получил беспорядочное расположение линий. Мне нужно, чтобы график был похож на годограф Найквиста Что мне нужно изменить??? Спасибо.

Решение задачи: «Построение графика в полярных координатах»

textual
Листинг программы
Public Type Complex
    Re As Double
    Im As Double
End Type
 
Public Function Cmplx(ByVal Real As Double, ByVal Imag As Double) As Complex
    Cmplx.Re = Real
    Cmplx.Im = Imag
End Function
 
Public Function Polar(ByVal Rho As Double, ByVal Arg As Double) As Complex
    Polar.Re = Rho * Cos(Arg)
    Polar.Im = Rho * Sin(Arg)
End Function
 
Public Property Get Rho(ByRef X As Complex) As Double
    If X.Im = 0 Then
        Rho = Abs(X.Re)
    ElseIf Abs(X.Re) < Abs(X.Im) Then
        Rho = Abs(X.Im) * Sqr(1 + Square(X.Re / X.Im))
    Else
        Rho = Abs(X.Re) * Sqr(1 + Square(X.Im / X.Re))
    End If
End Property
 
Public Property Get Arg(ByRef X As Complex) As Double
Dim A As Double, piDiv2 As Double
 
    piDiv2 = 2 * Atn(1)   'pi/2
    Select Case X.Re
        Case Is > 0
            If (X.Im = 0) Then
                A = 0
            Else
                A = Atn(X.Im / X.Re)
            End If
        Case 0
            Select Case X.Im
                Case Is > 0: A = piDiv2
                Case 0:      A = 0
                Case Is < 0: A = -piDiv2
            End Select
        Case Is < 0
            Select Case X.Im
                Case Is > 0: A = Atn(X.Im / X.Re) + 2 * piDiv2
                Case 0:      A = 2 * piDiv2
                Case Is < 0: A = Atn(X.Im / X.Re) - 2 * piDiv2
            End Select
    End Select
    Arg = A
End Property

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.286 из 5
Похожие ответы