- (Don't see your language listed, or want to see it reach 100%? - Help translate this content!) + (没有看到你的语言被列出,或者想看到它达到100%翻译? + 帮助翻译本资源!)
- Welcome to the Primer on Bezier Curves. This is a free website/ebook dealing with both the maths and programming aspects of Bezier Curves, - covering a wide range of topics relating to drawing and working with that curve that seems to pop up everywhere, from Photoshop paths to CSS - easing functions to Font outline descriptions. + 欢迎来到贝塞尔曲线入门。这是一个免费的网站/电子书,涉及贝塞尔曲线的数学和编程的的部分,涵盖的 + 主题很多,包括绘制和处理那条似乎无处不在的曲线,从 Photoshop 的路径到 CSS 缓动函数,再到字体 轮廓描述。
- If this is your first time here: welcome! Let me know if you were looking for anything in particular that the primer doesn't cover over on the - issue tracker! + 如果这是你第一次来到这里,那么欢迎你!告诉我任何你想要在这里找到但却没有涵盖的内容,请通过 + issue tracker 反馈!
-- If this is a resource that you're using for research, as work reference, or even writing your own software, please consider - donating (any amount helps) or - signing up as a patron on Patreon. I don't get paid to work on this, so if you find this site - valuable, and you'd like it to stick around for a long time to come, a lot of coffee went into writing this over the years, and a lot more - coffee will need to go into it yet: if you can spare a coffee, you'd be helping keep a resource alive and well. + 如果将此资源用于你的研究,作为工作参考,甚至是你编写的软件,可以考虑 + 捐款 (任何数额都可)或注册成为 + Patreon 上的资助人。 + 我在这方面的工作是没有报酬的,所以如果你觉得这个网站有价值,并且希望它能长期存在下去,那么在过去的几年 + 里,我喝了大量的咖啡来编写这个网站。如果你能捐助出一杯咖啡,你就在帮助保持这个资源的生存下去并良好发展。
- Also, if you are a company and your staff uses this book as a resource, or you use it as an onboarding resource, then please: consider - sponsoring the site! I am more than happy to work with your finance department on sponsorship invoicing and recognition. + 此外,如果你是一家公司,你的员工使用这本书作为资源,或者你把它作为一个入职培训资源,那么请:考虑赞助此网站! + 我很高兴与您合作。我非常乐意和财务部门合作,提供赞助发票和表彰。
- +
@@ -495,11 +481,11 @@
width="275"
height="275"
src="./chapters/introduction/quadratic.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -559,11 +547,11 @@ Given │ distance= (p - p ) │, our new point = p + distance ·
width="825"
height="275"
src="./chapters/whatis/interpolation.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -635,11 +623,11 @@ f(b) = sin (b)
width="275"
height="275"
src="./chapters/explanation/circle.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -968,11 +958,11 @@ function Bezier(3,t):
height="275"
src="./chapters/control/lerp.js"
data-degree="3"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -1203,11 +1193,11 @@ Rational Bézier(n,t) = ──────────────────
width="275"
height="275"
src="./chapters/weightcontrol/rational.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -1383,11 +1375,11 @@ m = a · value + (1 - a) · value
height="275"
src="./chapters/extended/extended.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -1546,7 +1540,7 @@ B(t) = ┌ 2 ┐ · │ -2 2 0 │ · │ P │
@@ -1573,11 +1567,11 @@ B(t) = ┌ 2 ┐ · │ -2 2 0 │ · │ P │
width="275"
height="275"
src="./chapters/decasteljau/decasteljau.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -1699,11 +1695,11 @@ function drawCurvePoint(points[], t):
height="275"
src="./chapters/flattening/flatten.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -1819,16 +1817,9 @@ function drawFlattenedCurve(curve, segmentCount):
Casteljau 算法时,该过程会给到我们在
@@ -2406,7 +2399,9 @@ B(t) = ┌ 2 ┐ · M · Q · │ P │ = ┌ 2 ┐ · M · │
@@ -2670,11 +2665,11 @@ M = │ k k │
width="275"
height="275"
src="./chapters/reordering/reorder.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -2989,7 +2986,7 @@ B'''(n,t), n = 1, w''' = {A'''} = {1 · (B''-A'')}
@@ -3219,11 +3218,11 @@ y' = x · sin (\phi) + y · cos (\phi)
width="350"
height="300"
src="./chapters/pointvectors3d/frenet.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -4169,11 +4170,11 @@ x = x - ───────
height="275"
src="./chapters/extremities/extremities.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -4223,11 +4226,11 @@ x = x - ───────
height="275"
src="./chapters/boundingbox/bbox.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -4322,11 +4327,11 @@ x = x - ───────
height="275"
src="./chapters/aligning/aligning.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -4364,11 +4371,11 @@ x = x - ───────
height="275"
src="./chapters/tightbounds/tightbounds.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -4591,11 +4600,11 @@ z = c - a ╯ 2x
width="275"
height="275"
src="./chapters/inflections/inflection.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -4632,11 +4641,11 @@ z = c - a ╯ 2x
width="400"
height="400"
src="./chapters/canonical/canonical.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -4984,11 +4995,11 @@ mapped = (x) = │ 1 2
width="550"
height="275"
src="./chapters/yforx/basics.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -5178,11 +5191,11 @@ length = | ⟍│(dx/dt) +(dy/dt) dt
height="275"
src="./chapters/arclength/draw-slices.js"
data-steps="10"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -5356,11 +5371,11 @@ t = + ────
height="275"
src="./chapters/arclengthapprox/approximate.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -5538,11 +5555,11 @@ function kappa(t, B):
width="825"
height="275"
src="./chapters/curvature/curvature.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -5608,11 +5627,11 @@ R(t) = ─────────
width="550"
height="275"
src="./chapters/tracing/distance-function.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -5689,11 +5710,11 @@ R(t) = ─────────
width="275"
height="275"
src="./chapters/intersections/line-line.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -5887,11 +5908,11 @@ lli = function(line1, line2):
width="825"
height="275"
src="./chapters/curveintersection/curve-curve.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -6160,11 +6181,11 @@ A = B - ───────── = B + ─────────
width="275"
height="275"
src="./chapters/pointcurves/quadratic.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -6684,11 +6707,11 @@ findClosest(start, p, r, LUT):
width="275"
height="275"
src="./chapters/circleintersection/circle.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -7272,11 +7297,11 @@ C = M (𝕋 𝕋) 𝕋 P
width="550"
height="275"
src="./chapters/curvefitting/curve-fitting.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -8056,7 +8083,9 @@ CatmullRom(t) = ┌ 2 3 ┐ · │ 0 0 1 0 │ · │ 2 │
@@ -8080,11 +8109,11 @@ CatmullRom(t) = ┌ 2 3 ┐ · │ 0 0 1 0 │ · │ 2 │
src="./chapters/polybezier/poly.js"
data-type="quadratic"
data-link="coordinate"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -8502,11 +8533,11 @@ N(t) \bot │ ────────── │
height="275"
src="./chapters/graduatedoffset/offsetting.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
Let's look at approximating circles and circular arcs using cubic Béziers. How much better is that?
@@ -9598,11 +9633,11 @@ radialError(radius, points[]):
width="275"
height="275"
src="./chapters/arcapproximation/arc.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
@@ -9665,16 +9702,9 @@ radialError(radius, points[]):
What do they look like? They look like this! Tap on the graphic to add more points, and move points around to see how they map to the
spline curve drawn.
diff --git a/src/locale-strings.js b/src/locale-strings.js
index 80d955ec..34cadc50 100644
--- a/src/locale-strings.js
+++ b/src/locale-strings.js
@@ -107,7 +107,7 @@ const localeStringData = {
with your finance department on sponsorship invoicing and recognition.
+ "zh-CN": `
如果将此资源用于你的研究,作为工作参考,甚至是你编写的软件,可以考虑 捐款
(任何数额都可)或注册成为 Patreon 上的资助人。
我在这方面的工作是没有报酬的,所以如果你觉得这个网站有价值,并且希望它能长期存在下去,那么在过去的几年
@@ -172,7 +172,7 @@ const localeStringData = {
or use the QR code on the right, if that's the kind of convenience you prefer =)
+ "zh-CN": `
如果你想通过比特币捐赠,你可以直接捐赠给
3GY1HbQ2cH9V4xBLnRYdEfc42Nd1ZyjLZu
或者使用右边的二维码,如果你倾向于这种便利的方式 =)
- 什么构成了贝塞尔曲线?
+
- 贝塞尔曲线的数学原理
+
- 控制贝塞尔的曲率
+
- Controlling Bézier curvatures, part 2: Rational Béziers
+
- 贝塞尔区间[0,1]
+
- 用矩阵运算来表示贝塞尔曲率
+
- de Casteljau's 算法
+
- 简化绘图
+
- 分割曲线
+
t
点分割曲线的所有点:
一条曲线包含该曲线上点之前的所有点,另一条曲线包含该曲线上点之后的所有点。
- Splitting curves using matrices
+
- Lowering and elevating curve order
+
- Derivatives
+
Tangents and normals
@@ -3123,11 +3120,11 @@ y' = x · sin (\phi) + y · cos (\phi)
height="275"
src="./chapters/pointvectors/pointvectors.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
- Working with 3D normals
+
Component functions
@@ -3531,11 +3530,11 @@ generateRMFrames(steps) -> frames:
height="275"
src="./chapters/components/components.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
- Finding extremities: root finding
+
- Bounding boxes
+
- Aligning curves
+
- Tight bounding boxes
+
- Curve inflections
+
- The canonical form (for cubic curves)
+
- Finding Y, given X
+
- Arc length
+
- Approximated arc length
+
- Curvature of a curve
+
- Tracing a curve at fixed distance intervals
+
- Intersections
+
- Curve/curve intersection
+
The projection identity
@@ -5939,11 +5960,11 @@ lli = function(line1, line2):
height="275"
src="./chapters/abc/abc.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
- Creating a curve from three points
+
Projecting a point onto a Bézier curve
@@ -6394,18 +6415,20 @@ for (coordinate, index) in LUT:
width="400"
height="400"
src="./chapters/projections/project.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
- Intersections with a circle
+
Molding a curve
@@ -6734,11 +6757,11 @@ A = B - ────────── = B + ──────────
height="275"
src="./chapters/molding/molding.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
- Curve fitting
+
Bézier curves and Catmull-Rom curves
@@ -7312,11 +7337,11 @@ C = M (𝕋 𝕋) 𝕋 P
width="275"
height="275"
src="./chapters/catmullconv/catmull-rom.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
- Creating a Catmull-Rom curve from three points
+
- Forming poly-Bézier curves
+
Curve offsetting
@@ -8433,11 +8462,11 @@ N(t) \bot │ ────────── │
height="275"
src="./chapters/offsetting/offsetting.js"
data-type="quadratic"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
- Graduated curve offsetting
+
Circles and quadratic Bézier curves
@@ -8565,11 +8596,11 @@ N(t) \bot │ ────────── │
width="400"
height="400"
src="./chapters/circles/arc-approximation.js"
- reset="重启"
- viewSource="view source"
+ reset="重置"
+ viewSource="查看源码"
>
- Circular arcs and cubic Béziers
+
- Approximating Bézier curves with circular arcs
+
- B-Splines
+
- Comments and questions
+