Red de conocimientos turísticos - Conocimientos sobre calendario chino - Un programa escrito en acrgis usando VB, la función es calcular el área de polígonos, algo salió mal, por favor de una respuesta de experto

Un programa escrito en acrgis usando VB, la función es calcular el área de polígonos, algo salió mal, por favor de una respuesta de experto

La deformación Rem convexa n se puede considerar como el área de n-1 triángulos

Área del triángulo Rem S=sqr(p*(p-a)*(p-b)*(p-c ) ), donde p=(a b c)/2, a, b, c son longitudes de los lados, longitud de los lados=sqr((x1-x2)^2 (y1-y2)^2), y (x1, y1) y ( x2, y2) son los valores de las coordenadas de dos puntos respectivamente

Rem El siguiente código es para encontrar el área de cualquier polígono, el número de lados lo decide el usuario

Subcomando privado1_Click()

Dim n, s, i, x(), y(), a, b, c, p

k:

n = Int(Val(Trim(InputBox ("Ingrese el número de lados del polígono:", "Área del polígono", 3))))

If n lt; El número de lados debe ser ≥ 3. ¡Inténtelo de nuevo!", , " Área del polígono": ​​Ir a k

En caso de error, reanudar siguiente

ReDim x(1 To n) , y(1 To n)

s = 0

p>

Para i = 1 To n

x(i) = Val(Trim (InputBox("Por favor ingrese" & IIf(n = 3, "Triángulo", n & "forma lateral") amp; "La "ésima" amp; i amp; "La coordenada de abscisa del punto:")))

y(i) = Val(Trim(InputBox("Por favor ingrese" amp; IIf( n = 3, "Triangle", n amp; "Side") amp; "La coordenada de abscisas del "ésimo " amp; i amp; "punto:")))

Si i gt; 1 entonces la línea (x(i), y(i))-(x(i - 1), y(i - 1))

Siguiente

Para i = 2 To n - 1

a = Sqr((x(1) - x(i)) ^ 2 (y(1) - y(i)) ^ 2)

b = Sqr( (x(1) - x(i 1)) ^ 2 (y(1) - y(i 1 )) ^ 2)

c = Sqr((x(i) - x(i 1) )) ^ 2 (y(i) - y(i 1)) ^ 2)

p = (a b c) / 2

s = s Sqr(p * (p - a) * (p - b) * (p - c))

Siguiente

MsgBox IIf(n = 3, "Triángulo", n amp; "Lado") amp ; "El área es" & s, , "El área del polígono"

Fin del subtítulo

v>