双三次Bezier曲面算法

双三次Bezier曲面

  • 双三次Bezier曲面由u,v方向的两组三次Bezier曲线交织而成,控制网格由16和控制点构成。

[p(u,v)= \left[\begin{matrix} u^3 & u^2 & u & 1 \end{matrix}\right] \left[\begin{matrix} -1 & 3 & -3 & 1 \ 3 & -6 & 3 & 0 \ -3 & 3 & 0 & 0 \ 1 & 0 & 0 & 0 \end{matrix}\right] \left[\begin{matrix} P_{0,0} &P_{0,1} & P_{0,2} & P_{0,3}\ P_{1,0} & P_{1,1} & P_{1,2} & P_{1,3} \ P_{2,0} & P_{2,1} & P_{2,2} & P_{2,3} \ P_{3,0} & P_{3,1} &P_{3,2} & P_{3,3} \end{matrix}\right] \left[\begin{matrix} -1 & 3 & -3 & 1 \ 3 & -6 & 3 & 0 \ -3 & 3 & 0 & 0 \ 1 & 0 & 0 & 0 \end{matrix}\right] \left[\begin{matrix} u^3\ u^2 \ u \ 1 \end{matrix}\right] ]

  • 简写为

[P(u,v)=UMPM^TV^T ]

  • 采用四叉树递归划分法细分曲面

  • 曲面上一个细分点的(u)方向切向量为(p_u),(v)方向上的切向量为(p_v):

[p_u=\frac{\partial p(u,v)}{\partial u}, p_v=\frac{\partial p(u,v)}{\partial v} ]

细分点在面上的法向量为:

[N=\frac{\partial p(u,v)}{\partial v}\times \frac{\partial p(u,v)}{\partial v} ]

  • 双三次曲面上法向量:

[ p^_u(u,v)= \left[\begin{matrix} 3u^2 & 2u & 1 &0 \end{matrix}\right]MPM^TV^T ]</p> <p>[ p^_v(u,v)=UMPM^T \left[\begin{matrix} 3u^2 & 2u & 1 &0 \end{matrix}\right]^T ]

[N=p^_u(u,v)\times p^_v(u,v) ]

Original: https://www.cnblogs.com/brilliantM/p/14782187.html
Author: 帅气无敌朋子
Title: 双三次Bezier曲面算法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/685971/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 错误域控降级导致解析问题

    近两天在给分部安装辅助域控的时候,总是安装不成功,或者安装时成功了但是无法复制主域或者其他域控的信息,同步失败,还有就是它一直没有网。 解决方案 经过排查发现域名dns解析不对,经…

    技术杂谈 2023年6月21日
    084
  • 一个 curl 配置引发的惨案

    问题 这两天想装新版本的 node,发现 nvm 一直报下面这个错误👇。我反复 Google 了,但是并没有找到一条我能用的。 痛苦 我起初一直怀疑是我用的 zsh-nvm 抽疯,…

    技术杂谈 2023年7月11日
    097
  • Java注解与原理分析

    一、注解基础 二、注解原理 三、常用注解 1、JDK注解 2、Lombok注解 四、自定义注解 1、同步控制 2、类型引擎 五、参考源码 使用的太多,被忽略的理所当然; 一、注解基…

    技术杂谈 2023年7月24日
    076
  • JavaSE基础笔记(1)

    1、注释 // / / /* / 单行注释 多行注释 文档注释 2、标识符 3、数据类型 整数类型 byte占1个字节范围:-128~127 short占2个字节范围:-32768…

    技术杂谈 2023年7月24日
    084
  • CentOS 7安装Docker整理常规命令集合

    XShell CentOS 7 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。 容器是…

    技术杂谈 2023年7月24日
    053
  • Docker清理日志脚本

    Docker清理日志脚本 #!/bin/sh 此脚本为日常清理docker日志 docker 容器的路劲日志为 /var/lib/docker/containers/ 下-json…

    技术杂谈 2023年6月21日
    066
  • Xperf Basics: Recording a Trace (the easy way)(转)

    Some time ago I wrote a long and detailed post about how to record traces using xperf. The…

    技术杂谈 2023年5月31日
    099
  • 【转】重新理解微服务之它还那么纯粹吗?

    原文:https://www.cnblogs.com/skychen1218/p/16406274.html Original: https://www.cnblogs.com/o…

    技术杂谈 2023年5月30日
    081
  • HashMap源码个人理解

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年7月11日
    061
  • golang map 中的 key 为什么是无序的

    map 在扩容后,会发生 key 的搬迁,原来落在同一个 bucket 中的 key,搬迁后,有些 key 就要远走高飞了(bucket 序号加上了 2^B)。而遍历的过程,就是按…

    技术杂谈 2023年5月30日
    086
  • 搭建Rust开发环境

    介绍 Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。 和Ruby,Python等脚本语言程序不同,Rust 是一种预编译…

    技术杂谈 2023年5月31日
    089
  • fabric2.2.网络部署

    在执行测试项目时,多次使用并修改此文件,部分地方没有及时更新.如果问题请联系 487008159 更正. 项目: fabric-samples 工作目录 : ~/go/src/gi…

    技术杂谈 2023年7月10日
    064
  • xss 防范

    https://www.npmjs.com/package/xss xss的案例: https://portswigger.net/web-security/cross-site-…

    技术杂谈 2023年5月31日
    085
  • CRISPR Screening的应用

    2023年05月03日 参考: CRISPR Screen 操作解析:Nature 高分文章你也可以写 MAGeCK: 一款高效的CRISPR/Cas9 screen数据分析工具 …

    技术杂谈 2023年5月31日
    092
  • 线程池开关与搭建的那些事

    博主今天在练习的时候遇到了一个问题: 自己搭建的线程池在运行到 join 阻塞方法中就卡着不动了,而在这之前的代码都可以运行成功。如图: 要说如果报了个错,我还能有地方使劲,这直接…

    技术杂谈 2023年7月11日
    081
  • IDEA一键部署SpringBoot项目到服务器

    1. 安装Alibaba Cloud Toolkit插件 2. 配置部署环境 2.1 为本次部署设置一个名字 2.2 选择被部署文件的生成方式 IDEA提供了三种方式: Maven…

    技术杂谈 2023年7月24日
    073
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球