shadertoy sdSegment 原理

news2024/9/21 12:40:25

sdSegment 原理

float sdSegment( in vec2 p, in vec2 a, in vec2 b )
{
    vec2 pa = p-a, ba = b-a;
    float h = clamp( dot(pa,ba)/dot(ba,ba), 0.0, 1.0 );
    return length( pa - ba*h );
}

原理:
u ⃗ \vec{u} u v ⃗ \vec{v} v 在夹角是 θ \theta θ 的投影长度是:

| F ⃗ | = ∣ u ⃗ ∣ c o s θ |\vec{F}| = |\vec{u}| cos \theta F =u cosθ
请添加图片描述

结合点乘公式:
u ⃗ ⋅ v ⃗ = ∣ u ⃗ ∣ ∣ v ⃗ ∣ c o s θ \vec{u} \cdot \vec{v} = |\vec{u}| |\vec{v}| cos \theta u v =u ∣∣v cosθ

投影长度可以写成:
| F ⃗ | = u ⃗ ⋅ v ⃗ ∣ v ⃗ ∣ |\vec{F}| = \frac{\vec{u} \cdot \vec{v}}{|\vec{v}|} F =v u v

因为 F ⃗ \vec{F} F v ⃗ \vec{v} v 方向相同, 只是长度不同。那么投影长度占向量 v ⃗ \vec{v} v 长度的比例:
h = u ⃗ ⋅ v ⃗ ∣ v ⃗ ∣ 2 = u ⃗ ⋅ v ⃗ v ⃗ ⋅ v ⃗ \begin{aligned} h &= \frac{\vec{u} \cdot \vec{v}}{|\vec{v}|^2} \\ &= \frac{\vec{u} \cdot \vec{v}}{\vec{v} \cdot \vec{v}} \end{aligned} h=v 2u v =v v u v

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2070131.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML5休闲小游戏《猫猫咖啡店》源码,引流、刷广告利器

HTML5休闲小游戏《猫猫咖啡店》源码,直接把源码上传到服务器就能使用了! 下载链接:https://www.huzhan.com/code/goods468502.html

vscode修改选中文字颜色及当前tab颜色

VSCode-》首选项-》设置->-》搜color,找到:Workbench:Color Customizations,点击:在 settings.json 中编辑 加上 选中的文字内容的 配置 "workbench.colorCustomizations": {//设置用户选中代码段的颜色&…

贪心+栈。。

前言:这个题目一开始我没想通的就是如果s当前的一个字符或者之后的一个字符和当前t的尾巴是一样的,那么优先选哪一个,其实这个就要优先选t的 class Solution { public:string robotWithString(string s) {string ans;int cnt[26]{}, min 0; …

2024年AI编程新手必备工具,快速提升技能!

在当今这个技术日新月异的时代,AI编程已成为一个越来越重要的领域,吸引着众多新手和希望提升自己的中级开发者进入。 对于这些渴望在AI领域快速成长的人来说,选择合适的编程工具是至关重要的。 接下来,我们将深入探讨几款市场上…

Ubuntu22.04下安装LDAP

目录 1 简单说明2 安装配置2.1 安装1、安装前准备2、安装 OpenLADP3、配置OpenLDAP4、设置基本组5、添加新组5、添加 OpenLDAP 用户 2.2 安装 LDAP 帐户管理器1、安装2、配置 LDAP 帐户管理器 3 简单使用3.1 创建一个组3.2 创建一个用户 总结 1 简单说明 之前写过在Centos下的…

LLaVA 简介

好奇这张照片是在哪里拍摄的?问 LLaVA!(图片来自Pixabay的Guy Rey-Bellet)。 LLaVA(L arge L anguage 和V isual A ssistant 的缩写)是一种很有前途的开源生成式人工智能模型,它复制了 OpenAI …

Arduino 定时器 [终极指南](原文)

Arduino Timers [Ultimate Guide] by Khaled Magdy In this tutorial, we’ll discuss Arduino Timers from the very basic concepts all the way to implementing Arduino timer-based systems. We’ll start off by discussing what is a timer, how they work, and what …

最近公共祖先(LCA),树上差分,树的直径总结

最近也是一不小心就学到了树论,这方面确实太不行了,也该开始学习一下了,那么话不多说,进入今日份的树论学习,直接开冲 最近公共祖先(LCA)——倍增思想(可以结合我之前写的ST表学习&…

Windows安装java8\java17并存切换版本操作

问题描述: 首先肯定一台电脑可以安装多个JDK,切换版本也是可实现的。 存在版本切换问题是企业项目用java8,个人研究技术用的17。希望两者并存,随时切换,记录一下操作步骤。 第一:先安装不同版本的jdk到系…

vue项目中,修改elementui一些复杂控件样式

1.前言 在vue项目中,我们为了快速开发,会用到elementui。但很多时候,elementui的样式不满足于我们项目的样式需求。这时候我们需要修改原生elementui的样式。 2.简单控件的样式修改 对于elementui中一些简单的控件,如按钮之类的…

Xshell链接本地20.04Ubuntu虚拟机

一、打开虚拟机设置选择自定义-net8 二、打开虚拟网络编辑器,点击更改设置 三、打开网络设置,如图操作 四。打开虚拟机,进入终端,输入ifconfig 五、su root进入root模式,配置静态网卡 # 备份配置文件 cd /etc/netpla…

Qt:玩转QPainter序列一

前言 最近想潜心研究一下QPainter这个类,最好把QPainter所有的函数都敲一遍,特地记录一下。 在说QPainter之前我们需要了解两个非常重要的东西 第一个坐标系 我用两张图来表示 代码实操的结果 更加详细的坐标系内容请看我的另一篇博客 第二个是有…

一款基于cesium的开源地图工具

Cesium是一个开源的、世界级的、展现3D全球地图的JavaScript类库,它毫无疑问已然成为WebGIS开发中三维地球框架的首选。本次给大家带来的是一个结合CesiumVue的前端地图开发框架,支持很多种地图渲染特效,同时还支持模型加载到地图上面。 开源地址&#…

Linux安装显卡驱动

本文详细阐述了在Linux系统中安装显卡驱动的步骤和注意事项。首先,文章介绍了显卡驱动的重要性,以及为什么需要安装或更新显卡驱动。接着,针对不同类型的显卡(如NVIDIA、AMD等),文章提供了具体的安装步骤和…

进程与程序的学习

1、进程与程序 程序:本地文件,编译后产生的文件.elf执行文件,存储在硬盘中的文件;进程:程序运行期间就是一个进程;(主要讨论两个进程的交互)程序是静态的,进程是动态的;程序执行后Linux内核自动完成虚拟内存(资源)分配,成进程; 将数据段、代码段这些运行时必要的…

ProxySQL 读写分离配置

ProxySQL 是一个高性能、高可用的 MySQL 代理软件,旨在提升 MySQL 数据库的可扩展性和性能。它可以在应用程序和 MySQL 服务器之间充当中间层,提供强大的路由、负载均衡和查询优化功能。 ProxySQL 的主要功能: 查询路由: ProxySQ…

王者站撸分析

王者站撸分析 问题背景 有这样两个角色 其中一个角色的被动是受到攻击会减少攻击者的攻速1%,该被动可以叠加40层 另一个角色的被动是攻击敌方会提升自己1%的免伤效果,该被动可以叠加20层。 在站撸情况下 哪方胜算更大? 为了解决这个问题,我…

基于Flask-REXTs创建一个项目接口并利用github上传部署

实习过程中需要自己单独编写一个项目使用到的api,并独立完成api的上传部署,这里记录一下全过程。 第一步 编写本地代码 IDE pycharm上创建一个项目名称,然后所有项目文件及结构如下: 其中app.py文件就是实现的接口,就…

ant design pro 如何实现动态菜单带上 icon 的

ant design pro 如何去保存颜色ant design pro v6 如何做好角色管理ant design 的 tree 如何作为角色中的权限选择之一ant design 的 tree 如何作为角色中的权限选择之二ant design pro access.ts 是如何控制多角色的权限的ant design pro 中用户的表单如何控制多个角色 如上图…

免费无损音乐、音效素材,马住着6个网站

如果你正在寻找免费的无损音乐和音效素材,这里有6个网站可以帮助你找到高质量的资源。无论是制作视频、播客还是其他创意项目,这些平台提供了丰富的选项,满足你的各种需求。 1、菜鸟图库 音效素材下载_mp3音效大全 - 菜鸟图库 菜鸟图库音…