回覆列表
  • 1 # 0o天天吐槽o0

    Rem 凸n變形可以看成是n-1個三角形的面積Rem 三角形的面積S=sqr(p*(p-a)*(p-b)*(p-c)),其中,p=(a+b+c)/2,a、b、c為邊長,邊長=sqr((x1-x2)^2+(y1-y2)^2),而(x1,y1)和(x2,y2)分別為兩點的座標值Rem 以下程式碼為求任意多邊形的面積,邊數由使用者自行決定Private Sub Command1_Click()Dim n, s, i, x(), y(), a, b, c, pk:n = Int(Val(Trim(InputBox("請輸入多邊形的邊數:", "多邊形面積", 3))))If n < 3 Then MsgBox "邊數必須≥3!請重試!", , "多邊形面積": GoTo kOn Error Resume NextReDim x(1 To n), y(1 To n)s = 0For i = 1 To nx(i) = Val(Trim(InputBox("請輸入" & IIf(n = 3, "三角形", n & "邊形") & "第" & i & "個點的橫座標:")))y(i) = Val(Trim(InputBox("請輸入" & IIf(n = 3, "三角形", n & "邊形") & "第" & i & "個點的橫座標:")))If i > 1 Then Line (x(i), y(i))-(x(i - 1), y(i - 1))NextFor i = 2 To n - 1a = 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) / 2s = s + Sqr(p * (p - a) * (p - b) * (p - c))NextMsgBox IIf(n = 3, "三角形", n & "邊形") & "面積是" & s, , "多邊形面積"End Sub

  • 中秋節和大豐收的關聯?
  • 醫藥銷售的模式與技巧?