贝塞尔曲线python的递归函数

2024-07-01

我被要求设计一个名为 Bezier 的递归函数,其参数是给定点的列表,以及必须评估的点。它返回贝塞尔曲线中由点列表的控制点定义的点。

这是我所做的算法:

def Bezier(point_list, t):
    if len(point_list)==1:
        return point_list[0]
    else:
        P1=Bezier(point_list[0:-1],t)
        P2=Bezier(point_list[1:],t)
        P=(1-t)*P1 + t*P2
        return P

这是给出的要点列表:

point_list=[ (0,0), (10,-1), (13,5), (-7,8), (2,2) ]

我如何知道我的功能是否正确?


看起来是正确的;您可以在某些点集上尝试,看看行为是否符合您的预期(即,对于沿 x=0、y=0 或 x=y 的控制点,所有结果点应位于同一条线上)。

您还可以利用镜像;即对于所有 t,Bezier([a, b, c], t) == Bezier([c, b, a], 1.-t)。如果您的结果未显示此行为,则您的函数不可能正确。

如果我尝试运行代码,我会因为尝试将元组乘以浮点数而收到 TypeError ;您可能需要扩展该代码,即

def Bezier(point_list, t):
    if len(point_list)==1:
        return point_list[0]
    else:
        P1=Bezier(point_list[0:-1], t)
        P2=Bezier(point_list[1:], t)
        nt = 1. - t
        return (nt * P1[0] + t * P2[0], nt * P1[1] + t * P2[1])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

贝塞尔曲线python的递归函数 的相关文章

  • 使用脚本取消设置 PDF 字体

    我正在使用 xhtml2pdf 库自动创建 PDF 几个月前我有过这个问题 https stackoverflow com questions 25203219 xhtml2pdf doesnt embed helvetica 库嵌入了我没
  • 如何使用判别函数绘制 3 个类别之间的决策边界

    我有 3 个判别函数 将 2D 空间划分为 3 个区域 我想绘制这些区域之间的决策边界 我不知道如何在 python 中使用 matplotlib meshgrid 来做到这一点 对于2个判别函数 过程很简单 我计算值为 0 的函数和等高线
  • 使用具有阿拉伯字符的 json.dumps 将字典转换为 json [重复]

    这个问题在这里已经有答案了 我有一本包含阿拉伯语单词的字典 例如 data name name print json dumps data file open data json a encoding utf 8 Output name u
  • 在Python中使用argparse解析整个JSON

    我正在尝试使用 ARGPARSE 库在一个简单的参数中解析整个 Json 问题是当它遇到儿子内部的不同元素 例如 和 时 它会突然停止 这是测试代码 parse py import argparse parser argparse Argu
  • Python 内存使用情况

    因此 我有一些代码接收一组文件 将其可以缝合在一起 然后绘制它们 我发布了大部分代码 试图使其更具可读性 如果需要 可以添加更多代码 for paths dirs files in os walk start path for d in d
  • 为 scipy 安装 BLAS 和 LAPACK 最简单的方法是什么?

    我想运行一个别人已经准备好的程序 其中包括 scipy 我尝试安装 scipy pip install scipy 但这给了我一个很长的错误 我知道 Anaconda 和 Canopy 有很多方法 但我认为这些方法还有很长的路要走 我想走近
  • 如何交换两个 DataFrame 列?

    In MATLAB to swap the first and second columns of a table A one would do this1 A A 2 1 3 end 如果有类似的方便方法可以做到这一点A是一只熊猫Data
  • 在django中使用pre_save时取消保存模型

    我有一个模型 class A models Model number models IntegerField 但是当我调用 A save 时 我想确保该数字是素数 或其他条件 否则应该取消保存指令 那么如何取消pre save信号接收器中的
  • 如何在不破坏 DataFrame.append() 的情况下子类化或以其他方式扩展 pandas DataFrame?

    我有一个复杂的对象 我想围绕 pandas DataFrame 构建 我尝试使用子类执行此操作 但是即使在使用时 附加到 DataFrame 也会重新初始化新实例中的所有属性 metadata 按照推荐here https pandas p
  • 为什么追加会覆盖列表?

    我正在尝试 hackerrank 的一些问题并遇到了这个问题https www hackerrank com challenges list com经理 问题 https www hackerrank com challenges list
  • 如何在python中查找文件的mime类型?

    假设您想要将一堆文件保存在某个地方 例如保存在 BLOB 中 假设您想通过网页分发这些文件 并让客户端自动打开正确的应用程序 查看器 假设 浏览器通过 HTTP 响应中的 mime type 内容类型 标头确定要使用哪个应用程序 查看器 基
  • 模拟 default=timezone.now 进行单元测试

    我正在尝试为执行大量日期时间操作的 django 应用程序编写单元测试 我已经安装了mock http www voidspace org uk python mock 给 django 打猴子补丁timezone now为了我的测试 虽然
  • Python pandas 使用 read_hdf 和 HDFStore.select 从 HDF5 文件读取特定值

    所以我使用一个简单的数据集创建了 hdf5 文件 如下所示 gt gt gt pd read hdf STORAGE2 h5 table A B 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4 使用这个脚本 import pan
  • Python 程序员资源 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用 plt 在热图上绘制梯度箭头

    我正在尝试绘制箭头以可视化热图上的梯度 这是我到目前为止的代码 import matplotlib pyplot as plt import numpy as np function to plot lambda x y x y 2 hor
  • python中1+1可以等于3吗? [复制]

    这个问题在这里已经有答案了 在继续之前 我知道人们应该never做这个 这个问题纯粹是出于教育目的 我进行这个练习是为了更好地理解 python 的内部结构ctypes 以及它们如何工作 我知道在 python 中更改整数的值相对容易 其实
  • Django 和原始 Python 之间的性能

    我想知道使用纯 python 文件制作网页和使用 Django 之间的性能差异是什么 我只是想知道两者之间是否有显着差异 谢谢 Django 是纯Python 因此每个类似语句或表达式的执行时间将是相同的 需要理解的是 在进行 Web 开发
  • PDFMiner - 迭代页面并将其转换为文本

    所以我试图从一些 PDF 中获取特定的文本 并且我将 Python 与 PDFMiner 一起使用 但由于 API 发生的更改而遇到了一些问题2013年11月 https github com euske pdfminer api chan
  • Python 中 NLTK 的命名实体识别。识别网元

    我需要将单词分类为词性 比如动词 名词 副词等等 我用的是 nltk word tokenize to identify word in a sentence nltk pos tag to identify the parts of sp
  • OpenCV中如何在点之间画线?

    我有一个元组数组 a 375 193 364 113 277 20 271 16 52 106 133 266 289 296 372 282 OpenCV中如何在点之间画线 这是我的代码不起作用 for index item in enu

随机推荐

  • 使用 pip freeze 安装 numpy

    I need to install Numpy version 1 17 1 but every time it just freezes I have now tried multiple times and I have been wa
  • 如何获取 Angular 5 组件元素的位置?

    在 5 角分量中 我有一个table 我需要创建一些类似叠加多个div上面几个td的 获得这些职位的最佳方法是什么td位于表格中 以便我可以放置其他元素 我目前正在尝试使用类似的东西 ViewChild table tableElement
  • 使用应用程序属性的 @Cacheable 条件

    我正在尝试将 Redis 与 Spring 一起使用 Cacheable但需要根据 Spring Boot 样式应用程序属性有条件地打开或关闭缓存 我的第一次尝试似乎不起作用 application properties 文件 auth t
  • 铆钉、Backbone.View 和 Backbone.Collection

    在过去的视图周中 我尝试了多种方法让 Rivets 与 Backbone View 和 Backbone Collection 配合使用 我在互联网上找到的示例涵盖了我所有的尝试 但我仍然没有成功 这是我目前试图实现的挑战 让 Rivets
  • PostgreSQL - 限制总日志大小

    我有一个非常简单的要求 PostgreSQL 日志目录应该有固定的最大大小 例如所有 PostgreSQL 日志最大 10 GB 它可以通过创建固定大小的日志并使用日志轮换来实现 例如轮换 10 个日志文件 每个日志文件 1 GB 我尝试使
  • 在带有传送器的网格上 A* 可接受的启发法?

    假设您有一个二维单元格网格 其中一些单元格被墙填充 角色可以从一个方格迈出一步 到达距离该方格水平或垂直一步的任何方格 但不能越过墙壁 给定起始位置和结束位置 我们可以使用具有可接受启发式的 A 算法找到从起始位置到结束位置的最短路径 在当
  • 输入宽度与文本区域宽度

    读完主题后输入尺寸与宽度 https stackoverflow com questions 1480588 input size vs width 我很清楚我们不应该使用 size 属性而应该使用 css 样式 输入 文本 和文本区域显示
  • Android:如何使用“uses-library”?

    我的Android应用程序可以分为客户端UI层和API层 我想将它们部署为单独的 应用程序 以便可以重用 API 层 在 Eclipse 中 我将它们编写为 2 个独立的 Android 项目 在客户端 UI 项目中 我在其构建路径中声明
  • 将画布图像保存到服务器

    我正在尝试将画布图像保存到服务器 我可以保存文件 但它始终是 0 字节 我的代码有什么问题吗 php
  • 吉普犯错了!构建错误。堆栈错误:“make”失败,退出代码为 2

    我目前正在开发一个 Nodejs Web 应用程序 但我在使用 Cloud Foundry 在线推送该应用程序时遇到了问题 我对这些错误进行了一些研究 似乎某些正在安装的软件包存在一些冲突 这是 package json 文件 depend
  • ARC 不允许将非 Objective-C 指针类型“char *”隐式转换为“NSString *”

    对于以下代码行 我收到以下错误 for UILabel label in labels label text label tag 100 gt someMutableString length 错误指出 ARC 不允许将非 Objectiv
  • Google 跨客户端身份验证是否可以在 iOS 上实现?如果可以,如何实现?

    我正在使用 oAuth2 并且我的 google API 控制台中有一个项目 其中注册了 iOS 客户端和 Web 客户端 我想从我的 iOS 应用程序进行身份验证 并让我的 Web 后端检索访问令牌 以便它可以使用 Google api
  • 在 Maven 存储库中查找 Oracle JDBC 驱动程序

    我想将 oracle jdbc 驱动程序作为依赖项 运行时范围 添加到我的项目中 ojdbc14 在 MVNrepository 站点中 放入 POM 的依赖项是
  • 在 Eclipse 中打开 Android XML 布局的快捷方式

    例如 如果我有类似的东西 setContentView R layout activity main 有没有快捷方式可以打开activity main xml 如果没有 有没有办法创建一个 Its there Just hold Ctrl
  • 动态方法的实际例子?

    我想学习动态方法及其使用 C 的实际示例 动态方法和Reflection有什么关系吗 请帮我 我们正在使用动态方法来加速反射 这是我们的反射优化器的代码 只比直接调用慢10 比反射调用快2000倍 public class Reflecti
  • 如何禁止隐式任何?

    我正在使用 TSLint no any true no unsafe any true 它不允许 let foo any 然而它仍然允许 let foo 如何开启隐式any的规则 截至目前 tslint 中还没有选项可以实现这一目标 您可以
  • 如何为 MongoDB 集合中的所有文档选择单个字段?

    在我的 MongoDB 中 我有一个学生集合 其中包含 10 条包含字段的记录name and roll 该集合的一项记录是 id ObjectId 53d9feff55d6b4dd1171dd9e name Swati roll 80 我
  • 如果没有连接 USB 电缆,ADB over TCP/IP 无法工作

    我可以使用 USB 电缆通过 ADB 连接到我的智能手机 我还可以通过 tcp ip 连接到同一智能手机 adb connect 192 168 1 110 同时 USB 电缆仍处于连接状态 但是 一旦我断开电缆 我就会松开 tcp ip
  • 待定意图的多个实例

    我创建了一个小部件 单击该小部件会激活 PendingIntent 问题是 当我屏幕上有多个小部件时 只有最新的小部件才会启动 PendingIntent 我读过一些关于独特请求代码的内容 但没有弄清楚这一点 有什么想法可以让多个小部件和
  • 贝塞尔曲线python的递归函数

    我被要求设计一个名为 Bezier 的递归函数 其参数是给定点的列表 以及必须评估的点 它返回贝塞尔曲线中由点列表的控制点定义的点 这是我所做的算法 def Bezier point list t if len point list 1 r