d表示什么| 身上有异味是什么原因| 667什么意思| 什么药可以推迟月经| 相得益彰是什么意思| 宝批龙是什么意思| 王林为什么叫王麻子| 8月31号是什么星座| 男孩叫什么名字| 莫名是什么意思| 什么办法| 头顶爱出汗是什么原因| alb医学上是什么意思| 早上起床喉咙有痰是什么原因| 产后漏尿是什么原因| 男的纹般若有什么寓意| 开除党籍有什么后果| 疱疹用什么药好得快| 后腰出汗多是什么原因| 为什么突然长痣| 淋巴组织增生是什么意思| 淋巴用什么药可以消除| 做梦拉粑粑是什么意思| 湿气重吃什么药最有效| 长此以往什么意思| 笑哭表情什么意思| 锅烧是什么| 入赘是什么意思| 供给侧改革什么意思| 肝火大吃什么药| 留置针是什么| 假释是什么意思| 80岁是什么之年| 尿胆红素高是什么原因| 女生肚脐眼下面疼是什么原因| 为什么高铁没有e座| 肾错构瘤是什么病| 胸腔疼痛是什么原因| 晕车喝什么| 苯甲酸钠是什么东西| 六月十二日是什么日子| 峦是什么意思| 来月经前有褐色分泌物是什么原因| 6月28日是什么星座| 益生元和益生菌有什么区别| 吃什么补阳气| 眉中间有竖纹代表什么| 为什么会有癌症| 杏花代表什么生肖| 插入阴道是什么感觉| 萎缩性阴道炎用什么药| 蓝莓什么味道| 修身养性下一句是什么| 血虚吃什么中成药| 首套房有什么优惠政策| 冻结账户需要什么条件| 鱼白是什么东西| 骇人听闻是什么意思| 舌苔厚有齿痕吃什么药| 后背沉重感是什么原因引起的| X-Ray什么意思| 天蝎座男生喜欢什么样的女生| 心绞痛是什么症状| 做爱为什么那么舒服| 吃什么可以变白| 秦始皇为什么要焚书坑儒| 冶阳萎什么药最有效| gsp全称是什么| 咳嗽吃什么好的快| 隐性梅毒是什么意思| 元五行属什么| 空气炸锅什么牌子好| 灰指甲用什么药最有效| 月亮星座代表什么意思| 哈怂是什么意思| 减肥吃什么比较好| 老师的老公叫什么| 自汗是什么意思| 魈是什么意思| 口腔溃疡白色的是什么| 鬼是什么意思| 42天产后检查都检查什么项目| 闺蜜过生日送什么礼物好| 赫是什么意思| 办残疾证需要什么条件| 全套什么意思| top1是什么意思| 石五行属什么| 咽喉肿痛吃什么药好| icp是什么意思| 残疾证有什么补贴| 尿肌酐高是什么原因引起的| 一岁宝宝口臭是什么原因引起的| 年兽叫什么| 身心疲惫是什么意思| 上技校学什么专业好| 吃黄芪有什么好处| 什么叫埋下伏笔| 送男生什么礼物| 宿便是什么意思| 什么的蘑菇| 男朋友生日送什么礼物| exchange是什么意思| 95511是什么号码| 气蛋是什么病| 什么情况下要做宫腔镜| 腿上血栓是什么症状| 褪黑素是什么东西| 经常放屁吃什么药| 什么人不适合吃榴莲| 尿路结石有什么症状| 双飞什么意思| 饱和脂肪酸是什么意思| 抗结剂是什么| 怀孕不到一个月有什么症状| 胃一阵一阵的疼吃什么药| 莓茶什么人不适合喝| 唇炎属于什么科| 更年期补钙吃什么钙片好| 雨云是什么字| vogue是什么意思| 属狗的幸运色是什么颜色| 放疗有什么副作用| 男性裆部瘙痒用什么药好| 瑞什么意思| 脂肪肝应注意什么| 公粮是什么意思| 野馄饨是什么意思| m1是什么单位| 想留不能留才最寂寞是什么歌| 女猴配什么属相最好| 鹿参膏有什么作用和功效| 排骨炖山药有什么功效| 送同学什么毕业礼物好| 尿蛋白弱阳性什么意思| 厄瓜多尔说什么语言| 晚上7点是什么时辰| 非典型细胞是什么意思| 天干地支是什么意思| 度蜜月什么意思| 腰上有痣代表什么| 宋江是什么生肖| 12.29是什么星座| 指日可待什么意思| 尿酸高可以吃什么肉| 做梦梦见好多蛇是什么预兆| 什么姿势睡觉最好| 什么是蛀牙| 高山仰止是什么意思| 风云人物什么意思| 肌肤之钥是什么档次| 达芬奇发明了什么| 氨水是什么| 湿毒是什么原因引起的| 天麻是什么东西| 儿童水杯什么材质好| 为什么男生喜欢女生的脚| 七宗罪是什么| 来月经期间吃什么最好| 茶麸是什么东西| 羊水偏少对胎儿有什么影响| 请问紫苏叶有什么功效| 梦见刷牙是什么预兆| 幽门螺杆菌是什么病| 羊水是什么颜色的| 什么叫质子| 为什么经常打嗝| 冠状沟是什么位置| 吃汤圆是什么节日| 幽门螺杆菌阴性是什么意思| 肋骨下面是什么部位| 结节是什么| 酷暑是什么意思| 经常饿是什么原因| 儿童经常头晕什么原因导致的| 县检察长是什么级别| 降息是什么意思| 腿肿脚肿是什么病的前兆| 小狗呕吐吃什么药| 涧什么字| 高姿属于什么档次| 口腔溃疡缺什么维生素| 五心烦热吃什么中成药| 阳历三月是什么星座| 维纳斯是什么意思| 回族为什么姓马的多| 右眼一直跳是什么原因| 湿疹和荨麻疹有什么区别| 苹果手机用的什么系统| 脾胃虚寒有什么症状| 囊内可见卵黄囊是什么意思| 血细胞分析五分类是查什么的| 任劳任怨是什么生肖| 油腔滑调指什么生肖| 郡字五行属什么| 甲胎蛋白增高说明什么| 小腿浮肿是什么病| 1111是什么意思| 姓郑的男孩取什么名字好| 7.16什么星座| 十二月四号是什么星座| au750是什么意思| 老婆的弟弟叫什么| 每天吃一个鸡蛋有什么好处| 血清检查能测出什么| 杀鸡取卵是什么生肖| 肠胃炎不能吃什么| gmp是什么| 生气容易得什么病| 姐妹是什么生肖| 看见乌鸦有什么预兆| 魑魅魍魉什么意思| 献血证有什么用| 这是什么地方| 黄花菜什么人不能吃| 怀孕初期有什么反应| 故宫为什么叫故宫| 铁扇公主是什么妖精| 脸油是什么原因导致的| 什么地睡觉| w代表什么意思| 睡觉打呼噜是什么病| 9月14日是什么星座| rosa是什么意思| 肝纤维化是什么意思| 火烈鸟为什么是红色的| 玉越戴越亮是什么原因| 毛遂自荐什么意思| 胡萝卜什么时候种| 囊性占位是什么意思| 荨麻疹擦什么药| 什么人容易得脑梗| 2019年属什么| 行政许可是什么意思| 什么水果寒凉性| 鲁迅原名是什么| 糖尿病喝什么茶| 牙神经拔了对牙齿有什么影响| joma是什么牌子| 病是什么结构的字| 胆汁反流什么症状| 梦见买豆腐是什么意思| 掉头发是什么原因导致的| 血脂四项包括什么| 口臭看什么科室| 杨贵妃属什么生肖| 经期吃榴莲有什么好处| 脂肪酶是什么意思| 快速补血吃什么| 赤是什么颜色| 参透是什么意思| 什么叫留守儿童| 嬴稷和嬴政什么关系| 鼻窦粘膜增厚什么意思| 人肉搜索是什么意思| 嬗变什么意思| 宝五行属什么| 职别是什么意思| 六子是什么意思| 左卵巢内囊性结构什么意思| 波推飞机什么意思| 前列腺是什么原因引起的| 巨蟹什么象星座| 豆瓣是什么软件| 百度Jump to content

北京市怀柔区人民政府办公室关于 印发怀柔...

From Wikipedia, the free encyclopedia
百度 参议院昨晚通过了万亿美元开支法案,以便让联邦政府在本财政年度余下时间得到正常拨款,并避免政府局部停摆,目前法案正递交特朗普签署。

In the mathematical field of numerical analysis, De Casteljau's algorithm is a recursive method to evaluate polynomials in Bernstein form or Bézier curves, named after its inventor Paul de Casteljau. De Casteljau's algorithm can also be used to split a single Bézier curve into two Bézier curves at an arbitrary parameter value.

The algorithm is numerically stable[1] when compared to direct evaluation of polynomials. The computational complexity of this algorithm is , where d is the number of dimensions, and n is the number of control points. There exist faster alternatives.[2][3]

Definition

[edit]

A Bézier curve (of degree , with control points ) can be written in Bernstein form as follows where is a Bernstein basis polynomial The curve at point can be evaluated with the recurrence relation

Then, the evaluation of at point can be evaluated in operations. The result is given by

Moreover, the Bézier curve can be split at point into two curves with respective control points:

Geometric interpretation

[edit]

The geometric interpretation of De Casteljau's algorithm is straightforward.

  • Consider a Bézier curve with control points . Connecting the consecutive points we create the control polygon of the curve.
  • Subdivide now each line segment of this polygon with the ratio and connect the points you get. This way you arrive at the new polygon having one fewer segment.
  • Repeat the process until you arrive at the single point – this is the point of the curve corresponding to the parameter .

The following picture shows this process for a cubic Bézier curve:

Note that the intermediate points that were constructed are in fact the control points for two new Bézier curves, both exactly coincident with the old one. This algorithm not only evaluates the curve at , but splits the curve into two pieces at , and provides the equations of the two sub-curves in Bézier form.

The interpretation given above is valid for a nonrational Bézier curve. To evaluate a rational Bézier curve in , we may project the point into ; for example, a curve in three dimensions may have its control points and weights projected to the weighted control points . The algorithm then proceeds as usual, interpolating in . The resulting four-dimensional points may be projected back into three-space with a perspective divide.

In general, operations on a rational curve (or surface) are equivalent to operations on a nonrational curve in a projective space. This representation as the "weighted control points" and weights is often convenient when evaluating rational curves.

Notation

[edit]

When doing the calculation by hand it is useful to write down the coefficients in a triangle scheme as When choosing a point t0 to evaluate a Bernstein polynomial we can use the two diagonals of the triangle scheme to construct a division of the polynomial into and

Bézier curve

[edit]
A second order Bézier curve.
A third order Bézier curve.
A fourth order Bézier curve.

When evaluating a Bézier curve of degree n in 3-dimensional space with n + 1 control points Pi with we split the Bézier curve into three separate equations which we evaluate individually using De Casteljau's algorithm.

Example

[edit]

We want to evaluate the Bernstein polynomial of degree 2 with the Bernstein coefficients at the point t0.

We start the recursion with and with the second iteration the recursion stops with which is the expected Bernstein polynomial of degree 2.

Implementations

[edit]

Here are example implementations of De Casteljau's algorithm in various programming languages.

deCasteljau :: Double -> [(Double, Double)] -> (Double, Double)
deCasteljau t [b] = b
deCasteljau t coefs = deCasteljau t reduced
  where
    reduced = zipWith (lerpP t) coefs (tail coefs)
    lerpP t (x0, y0) (x1, y1) = (lerp t x0 x1, lerp t y0 y1)
    lerp t a b = t * b + (1 - t) * a
def de_casteljau(t: float, coefs: list[float]) -> float:
    """De Casteljau's algorithm."""
    beta = coefs.copy()  # values in this list are overridden
    n = len(beta)
    for j in range(1, n):
        for k in range(n - j):
            beta[k] = beta[k] * (1 - t) + beta[k + 1] * t
    return beta[0]
public double deCasteljau(double t, double[] coefficients) {
    double[] beta = coefficients;
    int n = beta.length;
    for (int i = 1; i < n; i++) {
        for (int j = 0; j < (n - i); j++) {
            beta[j] = beta[j] * (1 - t) + beta[j + 1] * t;
        }
    }
    return beta[0];
}

Code example in JavaScript

[edit]

The following JavaScript function applies De Casteljau's algorithm to an array of control points or poles as originally named by De Casteljau to reduce them one by one until reaching a point in the curve for a given t between 0 for the first point of the curve and 1 for the last one

function crlPtReduceDeCasteljau(points, t) {
    let retArr = [ points.slice () ];
	while (points.length > 1) {
        let midpoints = [];
		for (let i = 0; i+1 < points.length; ++i) {
			let ax = points[i][0];
			let ay = points[i][1];
			let bx = points[i+1][0];
			let by = points[i+1][1];
            // a * (1-t) + b * t = a + (b - a) * t
			midpoints.push([
				ax + (bx - ax) * t,
				ay + (by - ay) * t,
			]);
		}
        retArr.push (midpoints)
		points = midpoints;
	}
	return retArr;
}

For example,

var poles = [ [0, 128], [128, 0], [256, 0], [384, 128] ] 
crlPtReduceDeCasteljau(poles, .5)

returns the array

[ [ [0, 128], [128, 0], [256, 0], [384, 128 ] ],
  [ [64, 64], [192, 0], [320, 64] ],
  [ [128, 32], [256, 32]],
  [ [192, 32]]
]

which yields the points and segments plotted below:

Intermediate line segments obtained by recursively applying linear interpolation to adjacent points.
Intermediate line segments obtained by recursively applying linear interpolation to adjacent points.

See also

[edit]

References

[edit]
  1. ^ Delgado, J.; Mainar, E.; Pe?a, J. M. (2025-08-05). "On the accuracy of de Casteljau-type algorithms and Bernstein representations". Computer Aided Geometric Design. 106: 102243. doi:10.1016/j.cagd.2023.102243. ISSN 0167-8396.
  2. ^ Wo?ny, Pawe?; Chudy, Filip (2025-08-05). "Linear-time geometric algorithm for evaluating Bézier curves". Computer-Aided Design. 118: 102760. arXiv:1803.06843. doi:10.1016/j.cad.2019.102760. ISSN 0010-4485.
  3. ^ Fuda, Chiara; Ramanantoanina, Andriamahenina; Hormann, Kai (2024). "A comprehensive comparison of algorithms for evaluating rational Bézier curves". Dolomites Research Notes on Approximation. 17 (9/2024): 56–78. doi:10.14658/PUPJ-DRNA-2024-3-9. ISSN 2035-6803.
[edit]
那是什么 7.16什么星座 女生爱出汗是什么原因 心电图电轴右偏是什么意思 前年是什么年
女性脚冰凉是什么原因 什么实实 空泡蝶鞍是什么病 蓝色药片是什么药 这个是什么表情
吃黑豆有什么好处和坏处 抗美援朝什么时候结束 红茶用什么茶具泡好 二月十三是什么星座 脑花是什么东西
聚餐吃什么 居高临下是什么意思 拍证件照穿什么衣服 手上长小水泡很痒是什么原因 2028什么年
维生素c偏高是什么原因hcv9jop2ns8r.cn 鹤顶红是什么hcv9jop0ns1r.cn 黑茶属于什么茶hcv8jop4ns6r.cn 艾灸灸出水泡是什么情况hcv9jop7ns1r.cn 腰痛吃什么药hcv7jop4ns5r.cn
5月20日是什么星座hcv9jop2ns1r.cn 85属什么hcv8jop7ns5r.cn 发呆是什么意思jinxinzhichuang.com 偶数是什么hcv8jop8ns1r.cn 新零售是什么意思hcv7jop9ns5r.cn
x58主板配什么cpuhcv7jop7ns4r.cn 精液有血是什么原因hcv8jop3ns8r.cn 制冰机不制冰是什么原因hcv7jop5ns1r.cn 佛是什么意思hcv9jop6ns8r.cn 全血粘度低切偏高是什么意思helloaicloud.com
吃什么水果对心脏好hcv8jop5ns6r.cn 穿模是什么意思hcv8jop6ns4r.cn 梦见前男友结婚了是什么征兆hcv8jop4ns7r.cn 手麻吃什么药最好hcv8jop6ns7r.cn 存是什么生肖hcv9jop3ns7r.cn
百度