ArcLength
更多信息和选项
- ArcLength 也被称作长度或曲线的长度.
- 一维区域可以嵌入任何大于或等于1的维度中.
- 在笛卡尔坐标系中,曲线
的 ArcLength 是
. - 在一般的坐标图中,参数化曲线
的 ArcLength 由
给出,其中
是度量. - 在 ArcLength[x,{t,tmin,tmax}] 中,如果 x 是标量,ArcLength 返回参数化曲线 {t,x} 的长度.
- 在 ArcLength 的第三个参数中的坐标图可以用三元组 {coordsys,metric,dim} 的形式指定,就像指定 CoordinateChartData 的第一个参数一样. 可以使用省略 dim 的短形式.
- 可以给出下列选项:
-
AccuracyGoal Infinity 寻求绝对精确度的数字 Assumptions $Assumptions 关于参数所作的假设 GenerateConditions Automatic 是否生成参数条件 PerformanceGoal $PerformanceGoal 尝试优化的性能方面 PrecisionGoal Automatic 寻求精确度的数字 WorkingPrecision Automatic 内部计算所用的精度 - 积分的符号式极限被认为是实数,且是有序的. 符号式坐标图参数的范围被认为由 CoordinateChartData 的 "ParameterRangeAssumptions" 属性给出.
- ArcLength 可与 GeometricScene 的符号区域一起使用.
范例
打开所有单元 关闭所有单元基本范例 (3)
ArcLength[Line[{{0, 0}, {1, 1}, {2, 0}}]]ArcLength[Circle[{x, y}, r]]ArcLength[{Sin[θ], Cos[θ]}, {θ, 0, 2Pi}]ArcLength[{1, t, t}, {t, 0, 2Pi}, "Cylindrical"]范围 (16)
特殊区域 (3)
Line:
ℛ = Line[{{0, 0}, {1, 2}, {1, 0}, {2, 2}}];
ArcLength[ℛ]Region[ℛ]ArcLength[Line[{{0}, {1}}]]ArcLength[Line[{{0, 0, 0}, {1, 1, 1}, {0, 0, 1}}]]只有一维 Simplex 有有意义的弧长:
ℛ = Simplex[{{0, 0}, {1, 1}}];
ArcLength[ℛ]Region[ℛ]ArcLength[Simplex[{{0}, {1}}]]ArcLength[Simplex[{{0, 0, 0}, {1, 1, 1}}]]ArcLength[Circle[{Subscript[c, x], Subscript[c, y]}, r]]Region[Circle[{0, 0}, 1]]ArcLength[Circle[{Subscript[c, x], Subscript[c, y]}, {Subscript[r, x], Subscript[r, y]}]]Region[Circle[{0, 0}, {3, 2}]]公式区域 (2)
用 ImplicitRegion 表示的圆的弧长:
ArcLength[ImplicitRegion[x^2 + y^2 == 1, {x, y}]]ArcLength[ImplicitRegion[x^2 + 2y^2 == 1, {x, y}]]用 ParametricRegion 表示的圆的弧长:
ArcLength[ParametricRegion[{Cos[θ], Sin[θ]}, {{θ, 0, 2π}}]]ArcLength[ParametricRegion[{(1 - t^2/1 + t^2), (2t/1 + t^2)}, {t}]]网格区域 (2)
MeshRegion 的弧长:
MeshRegion[{{0, 0}, {1, 0}, {2, 1 / 2}, {2, -1 / 2}}, Line[{1, 2, 3, 4, 2}]]ArcLength[%]MeshRegion[{{0, 0, 0}, {0, 1, 1}, {1, 0, 0}, {1, 1, 1}}, Line[{1, 2, 3, 4, 1}]]ArcLength[%]一维 BoundaryMeshRegion 的弧长:
BoundaryMeshRegion[{{0}, {1}}, Point[{{1}, {2}}]]ArcLength[%]派生区域 (4)
ℛ = RegionIntersection[Circle[{1, 0}, 1], Disk[]];Show[Graphics[{LightBlue, EdgeForm[Gray], Disk[], Gray, Circle[{1, 0}, 1]}], HighlightMesh[DiscretizeRegion[ℛ], 1]]ArcLength[ℛ]Subscript[ℛ, 1] = Circle[];
Subscript[ℛ, 2] = Triangle[{{-3 / 2, 0}, {3 / 2, 0}, {0, 11 / 10}}];
Subscript[ℛ, 3] = RegionIntersection[Subscript[ℛ, 1], Subscript[ℛ, 2]];Show[Graphics[{LightBlue, EdgeForm[Gray], Subscript[ℛ, 2], Gray, Subscript[ℛ, 1]}], HighlightMesh[DiscretizeRegion[Subscript[ℛ, 3]], 1]]ArcLength[Subscript[ℛ, 3]]TransformedRegion 的弧长:
ℛ = TransformedRegion[Line[{{0, 0}, {1, 0}, {1, 1}, {0, 0}}], ShearingTransform[30Degree, {1, 0}, {0, 1}]];DiscretizeRegion[ℛ, {{0, 2}, {-1, 1}}]ArcLength[ℛ]RegionBoundary 度量:
ℛ = RegionBoundary[Disk[{1, 2}, 3]]Region[ℛ]ArcLength[ℛ]参数化公式 (5)
ArcLength[{Exp[-t / 10], t}, {t, 0, ∞}, "Polar"]ParametricPlot[CoordinateTransform[ "Polar" -> "Cartesian", {Exp[-t / 10], t}]//Evaluate, {t, 0, 50}, PlotRange -> All]ArcLength[x ^ 2, {x, a, b}]ArcLength[{1, t, 2t}, {t, 0, Pi}, {{"OblateSpheroidal", {2}}, "Euclidean"}]ArcLength[{t ^ 2, Pi / 2, Pi / 4, t}, {t, 0, 2Pi}, "Hyperspherical"]ArcLength[{t, a t}, {t, 0, ∞}, {"Stereographic", "Sphere"}, Assumptions -> a∈Reals]选项 (7)
AccuracyGoal (1)
Region[ℛ = ImplicitRegion[x ^ 4 + y ^ 4 == 1, {x, y}]]s1 = ArcLength[ℛ]可通过 AccuracyGoal 选项来修改默认的绝对容差. 此处,当精度目标条件被满足时,弧长计算便会停止:
s2 = ArcLength[ℛ, AccuracyGoal -> 1]Assumptions (1)
GenerateConditions (1)
PrecisionGoal (1)
可通过 PrecisionGoal 指定需要达到的有效精度位数:
Table[ArcLength[ImplicitRegion[x ^ 4 + y ^ 4 == 1, {x, y}], PrecisionGoal -> prec], {prec, 1, 5}]ListPlot[%, PlotRange -> All]PerformanceGoal (1)
Region[ℛ = ImplicitRegion[x ^ 4 + y ^ 4 == 1, {x, y}]]用 PerformanceGoal"Speed" 来尝试快速计算弧长:
(s1 = ArcLength[ℛ, PerformanceGoal -> "Speed"])//Timing用 PerformanceGoal"Performance" 来尝试计算可给出尽可能多正确位数的结果:
(s2 = ArcLength[ℛ, PerformanceGoal -> "Quality"])//Timingsexact = -(3^1 / 4 MeijerG[{{(1/3), (2/3), (5/6), 1, (4/3)}, {}}, {{(1/12), (5/12), (7/12), (3/4), (13/12)}, {}}, 1]/16 Sqrt[2] π^7 / 2 Gamma[(5/4)]);s1 - sexacts2 - sexactWorkingPrecision (2)
使用机器算法计算 ArcLength:
ArcLength[ImplicitRegion[x ^ 6 + y ^ 6 - x y == 1, {x, y}], WorkingPrecision -> MachinePrecision]ArcLength[ImplicitRegion[x ^ 6 + y ^ 6 - x y == 1, {x, y}]]使用30位精度求 ArcLength:
ArcLength[{a Cos[t], a Sin[t], a Sin[t]}, {t, 0, 2Pi}, WorkingPrecision -> 30]应用 (8)
curve = ParametricRegion[{x, Sin[x]}, {{x, 0, 1}}];ArcLength[curve]ArcLength[Sin[x], {x, 0, 1}]knot = KnotData["SolomonSeal", "SpaceCurve"]ArcLength[knot[t], {t, 0, 2Pi}]{a, e} = {"SemimajorAxis", "Eccentricity"} /. Entity["Planet", "Jupiter"]["OrbitRules"]//NArcLength[{(a(1 - e^2)/1 + e Cos[θ]), θ}, {θ, 0, 2Pi}, "Polar"]ArcLength[{ArcCosh[1 / e], ν}, {ν, 0, 2Pi}, {{"Elliptic", a e}}]graphics = KnotData["SolomonSeal", "KnotDiagram"]ArcLength /@ Cases[graphics, _Line, -1]Total[%]c[t_] = {Cos[3t], Sin[5t]};
total = ArcLength[c[t], {t, 0., 2Pi}];
ParametricPlot[c[t], {t, 0, 2Pi}, PlotStyle -> Thick, ColorFunctionScaling -> False, ImageSize -> 300, ColorFunction -> (Hue[0.6ArcLength[c[t], {t, 0, #3}] / total]&), PlotLegends -> BarLegend[{Hue[0.6# / total]&, {0, total}}]]根据遍历距离的分数在球面上对 Viviani 曲线进行着色:
viv[t_] := {-(Sin[t]/2), -Sin[(t/2)], (1/2) (1 + Cos[t])};
fraclen[a_] = ArcLength[viv[t], {t, 0, 4Pi a}] / ArcLength[viv[t], {t, 0, 4Pi}];
Show[ParametricPlot3D[viv[t], {t, 0, 4Pi}, PlotStyle -> Thick, ColorFunction -> (Hue[0.6fraclen[#4]]&), PlotLegends -> BarLegend[{Hue[0.6#]&, {0, 1}}, LegendMarkerSize -> Small]], Graphics3D[{Gray, Opacity[.5], Sphere[]}], PlotRange -> All]r = Circle[{0, 0}, 1];Integrate[x^2y^2, {x, y}∈r] / ArcLength[r]计算 Polygon 的周长:
p = Polygon[Table[If[EvenQ[ii], 3, 2]{Cos[2π ii / 16], Sin[2π ii / 16]}, {ii, 0, 15}]];
Region[p]ArcLength[RegionBoundary[N@p]]属性和关系 (6)
ArcLength 是一个非负的量:
ArcLength[{Sin[θ], Cos[θ]}, {θ, 0, 2π}]ArcLength[{Sin[θ], Cos[θ]}, {θ, 0, -2π}]对于任何一维区域,ArcLength[r] 与 RegionMeasure[r] 相同:
{ArcLength[Line[{{0, 0}, {1, 1}}]], RegionMeasure[Line[{{0, 0}, {1, 1}}]]}{ArcLength[Circle[]], RegionMeasure[Circle[]]}参数形式的 ArcLength 作为积分定义:
ArcLength[{Sin[θ], 2Cos[θ]}, {θ, 0, 2π}]Integrate[Sqrt[Sin'[θ]^2 + (2 Cos'[θ])^2], {θ, 0, 2π}]ArcLength[x,t,c] 等价于 RegionMeasure[x,{t},c]:
ArcLength[{t ^ 2, Pi / 2, Pi / 4, t}, {t, 0, 2Pi}, "Hyperspherical"]RegionMeasure[{t ^ 2, Pi / 2, Pi / 4, t}, {{t, 0, 2Pi}}, "Hyperspherical"]% == %%对于一维区域,ArcLength 定义为1在该区域上的积分:
ℛ = Circle[{1, 2}, {3, 4}];{ArcLength[ℛ], Integrate[1, x∈ℛ]}二维区域的周长是其 RegionBoundary 的 ArcLength:
ℛ = RegionBoundary[Disk[{0, 0}, 1]];ArcLength[ℛ]可能存在的问题 (2)
参数形式或 ArcLength 计算可能的多个覆盖层的长度:
ArcLength[{Cos[θ], Sin[θ]}, {θ, 0, 4π}]ArcLength[ParametricRegion[{Cos[θ], Sin[θ]}, {{θ, 0, 4π}}]]ArcLength[Circle[{0, 0}, 1]]不是1的维度区域的长度是 Undefined:
{ArcLength[Point[{0, 0}]], ArcLength[Disk[]]}{RegionDimension[Point[{0, 0}]], RegionDimension[Disk[]]}文本
Wolfram Research (2014),ArcLength,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ArcLength.html (更新于 2019 年).
CMS
Wolfram 语言. 2014. "ArcLength." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2019. https://reference.wolfram.com/language/ref/ArcLength.html.
APA
Wolfram 语言. (2014). ArcLength. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ArcLength.html 年
BibTeX
@misc{reference.wolfram_2026_arclength, author="Wolfram Research", title="{ArcLength}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/ArcLength.html}", note=[Accessed: 12-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_arclength, organization={Wolfram Research}, title={ArcLength}, year={2019}, url={https://reference.wolfram.com/language/ref/ArcLength.html}, note=[Accessed: 12-September-2026]}