【grasshopper】【犀流堂】【算法】Anemone雨水径流模拟-笔记

news2024/11/25 11:50:02

文章目录

  • Anemone雨水路径模拟
    • available options可用选项
    • grasshopper面切线几何原理
  • 案例1:surface地形
    • 1. 拾取地形曲面surface
    • 2. 曲面上根据divide surface划分点points
    • 3.将曲面上的划分点用surface closest point投影到曲面上
    • 4.align plane旋转平面x轴与世界Z夹角最小
      • 将本地的视频上传到阿里云
    • 5.沿着面的向下negative方向移动点
      • case:有些点会移出到曲面之外
      • 通用方法:surface closes point所有点拉回到曲面
    • 6.接入数据循环
      • 默认不record记录数据历史
      • record记录数据历史
    • 7.数据结构处理——生成径流线
      • 原来数据结构——每步一组
      • flip matrix翻转矩阵——每条径流一组
  • 案例2:mesh地形
    • 1. 拾取地形网格mesh
    • 2. 网格上几何填充populate geometry 随机布置点
    • 3.生成地形等距断面线
    • 4.mesh closest points 点在网格上投影 | mesh eval网格计算得到网格质心和法向量
    • 6.用mesh eval得到的质心点+法线,使用Plane normal构造工作平面
    • 7. 工作平面x-axis转到与z轴夹角最小,negative 反向
    • 8.移动点并投影到mesh上(mesh closest point同时可以防止移出)
    • 9.Record,Flap Matrix,Poly line连线
    • 10.地形着色
      • bounding box获得地形的三维范围
      • Mesh spray 1:沿`两个`点之间的mesh,指定`颜色`渐变
      • Mesh spray 2:沿`多个`点之间的mesh,指定`色彩渐变器`渐变
    • 11.拆解网格——更通用的方法
  • 图纸绘制插件human
  • 循环程序插件 Anemone
    • extended. fitness landscape 景观舒适度——地形着色工具
  • 几个电池原理查看工具
    • 官网教程grasshopper primer
    • Grasshopper 中文版运算器详解2022(中英文对照)
  • 同类大佬作品

Anemone雨水路径模拟

image-20230716090832552

image-20230716092956754

本文是一篇学习笔记,课程来自于【【犀流堂】100GH运算器详解】及知乎大佬的文章,原文如下。

Anemone雨水路径模拟https://www.rhinostudio.cn/course/1529/task/2795/show

Y原创 | 利用循环电池Anemone模拟雨水流向https://mp.weixin.qq.com/s/Q3-9D8N9wbfmfiZ3F-RmYg

第169期-Anemone循环学习笔记①https://mp.weixin.qq.com/s/7F4vHeHi8bs4NUjNbhFvoA

available options可用选项

  • 粒子模拟
  • 3dmax物理模型
  • grasshopper面切线

grasshopper面切线几何原理

image-20230716093452780

循环,让每一个点``每次在他当前的位置都去找一下他像该向哪个方向流

然后将这个点投影到原来曲面上

2023-07-16_14-35-07

案例1:surface地形

1. 拾取地形曲面surface

2. 曲面上根据divide surface划分点points

image-20230716105352137

3.将曲面上的划分点用surface closest point投影到曲面上

image-20230716105446076

曲面进行投影投影之后呢会得到每一个点在曲面上的uv坐标,也就是曲面的二维坐标系

image-20230716105557886

frame:点在曲面上的切面

frame:点在曲面上的切面

切面,我们已经得到了,但是呢现在每一个切面,它的方向都是曲面的uv方向。

image-20230716110106797

4.align plane旋转平面x轴与世界Z夹角最小

image-20230716114341036


image-20230716122729645

指定法向,旋转平面的X轴,与指定方向夹角最小

将本地的视频上传到阿里云

  • https://oss.console.aliyun.com/bucket
  • picgo u “C:\Users\myearning\AppData\Roaming\Typora\typora-user-images\image-20230501212248235.png”

这个命令是用 PicGo 上传一个名为 image-20230501212248235.png 的图片。该图片位于您的 Typora 编辑器的用户图片文件夹中。

根据命令的格式,picgo 是 PicGo 的命令行工具,uupload 的缩写,用于上传文件。而 "C:\\Users\\myearning\\AppData\\Roaming\\Typora\\typora-user-images\\image-20230501212248235.png" 则是您要上传的图片的本地路径。

当您在命令行中执行这个命令时,PicGo 将会读取该文件,然后将其上传到您预设的图片上传器中,例如阿里云 OSS、七牛云等。

5.沿着面的向下negative方向移动点

  • 对工作平面解析并旋转x轴为沿平面,与-z最小
  • 移动上一步的点

image-20230716123807052

case:有些点会移出到曲面之外

image-20230716125031789

通用方法:surface closes point所有点拉回到曲面

6.接入数据循环

image-20230716125927064

image-20230716130059701

指定15次循环

默认不record记录数据历史

2023-07-16_13-04-31

record记录数据历史

image-20230716130530794

2023-07-16_13-06-37

7.数据结构处理——生成径流线

原来数据结构——每步一组

image-20230716130852174

  • 15次循环,分了15个组
  • 每组里是每次位移之后,在平面上的点

image-20230716131536891

flip matrix翻转矩阵——每条径流一组

image-20230716144409596

案例2:mesh地形

surface 和 mesh 是rhino中完全独立的几何模式

1. 拾取地形网格mesh

image-20230716145330852

2. 网格上几何填充populate geometry 随机布置点

image-20230716145552356

image-20230716145740016

3.生成地形等距断面线

4.mesh closest points 点在网格上投影 | mesh eval网格计算得到网格质心和法向量

image-20230716174014263

image-20230716175445470

Mesh Closest Point

IMAGE

This component will calculate the position on a mesh that is closest to a given point. This component outputs three pieces of data: the coordinates of the calculated point on the mesh, the index of the face which contains that point, and the mesh parameter. This parameter is extremely useful in conjunction with the Mesh Eval component discussed below.

这个组件将计算网格上最接近给定点的位置。该组件输出三部分数据:计算点在网格上的坐标,包含该点的面索引和网格参数。该参数在与下面讨论的Mesh Eval组件结合使用时非常有用。

IMAGE

  1. Given a point in space, We want to find the closet point on the mesh

  2. The face that contains the closest point is identified

  3. The parameters of the closest point on the face are calculated

  4. 给定空间中的一个点,我们想要找到网格上的最近点

  5. 包含最近点的mesh面被识别

  6. 计算出曲面上最近点的参数

For those users interested in a little more detail about how a mesh is parameterized, we can take a closer look at how a mesh parameter is structured. You can see this structure by attaching a panel to the parameter output of a Mesh Closest Point component. The mesh parameter has the form: N[A,B,C,D]. The first number, N, is the index of the face which contains the calculated point.

对于那些对网格参数化细节感兴趣的用户,我们可以仔细看看网格参数是如何结构的。你可以通过将面板附加到Mesh nearest Point组件的参数输出来看到这个结构。网格参数形式为:N[A,B,C,D]。第一个数字N是包含计算点的面的索引

The following four numbers define the barycentric coordinates of the point within that face. The coordinates of the referenced point can be found by multiplying each vertex of the face by these numbers in order and then add the results together. (Of course, this is already done for us, and is given in the Point output). Also note that barycentric coordinates are only unique for triangular faces, meaning that on a quad face the same point could have multiple different parameterizations. Grasshopper avoids this problem by internally triangulating a quad face when calculating a parameter, the result of which is that of the four numbers in a mesh parameter, at least one of them will always be zero.

下面四个数字定义了该面内点的“质心”的坐标。参考点的坐标可以通过将面部的每个顶点按顺序乘以这些数字来找到,然后将结果相加。(当然,这已经为我们完成了,并且在Point输出中给出了)。还要注意,质心坐标仅对三角形面是唯一的,这意味着在四边形面上相同的点可以有多个不同的参数化。Grasshopper通过在计算参数时对一个四边形进行内部三角化来避免这个问题,其结果是网格参数中的四个数字,其中至少有一个总是零

IMAGE

Barycentric Coordinates

Mesh Eval

IMAGE

The Mesh Eval component uses a mesh parameter as an input and returns the referenced point, as well as the normal and color at that point. The color and normal are calculated as interpolations of the vertex colors and vertex normals, using the same barycentric coordinates as the mesh parameter.

Mesh Eval组件使用网格参数作为输入,并返回参考点,以及该点的法线和颜色。颜色和法线作为顶点颜色和顶点法线的插值计算,使用与网格参数相同的质心坐标。

6.用mesh eval得到的质心点+法线,使用Plane normal构造工作平面

image-20230716183041711

  • 工作平面与网格相切

7. 工作平面x-axis转到与z轴夹角最小,negative 反向

image-20230716185513649

8.移动点并投影到mesh上(mesh closest point同时可以防止移出)

9.Record,Flap Matrix,Poly line连线

image-20230716190146796

2023-07-16_19-03-39

10.地形着色

bounding box获得地形的三维范围

image-20230716201235688

image-20230716191054134

Mesh spray 1:沿两个点之间的mesh,指定颜色渐变

image-20230716202410374

image-20230716203427634

Mesh spray 2:沿多个点之间的mesh,指定色彩渐变器渐变

image-20230716202909812

Gradient色彩渐变

image-20230716203727698

Gradient案例1——根据长度

image-20230716203915758

Gradient案例2——根据面积

image-20230716204108400

Gradient案例3

image-20230716204954225

11.拆解网格——更通用的方法

以上的沿bounding box的edge,因高度较小,着色均不明显。

image-20230716211132532

image-20230716211301824

image-20230716211429475

图纸绘制插件human

【food4Rhino】https://www.food4rhino.com/en/app/human

从Rhino+Grasshopper显示模式说起——如何用Rhino绘制各式图纸(三)Grasshopper 显示相关电池与插件

https://zhuanlan.zhihu.com/p/503702789

循环程序插件 Anemone

在GH中,原生电池是不支持任何形式的循环的:

【food4Rhino】https://www.food4rhino.com/en/app/anemone

代替Hoopsnake的新循环器----Anemone!! 发布于 2014-3-19 36 点赞 334 评论 114415 浏览https://www.xuexiniu.com/thread-65174-1-1.html

林师兄的汉化-海葵(Anemone)04
更新时间 : 2017-07-10 程序/插件下载https://www.xuexiniu.com/thread-130981-1-1.html

image-20230716111726372

extended. fitness landscape 景观舒适度——地形着色工具

image-20230716205659483

image-20230716205838291

几个电池原理查看工具

官网教程grasshopper primer

image-20230716152022171

http://grasshopperprimer.com/en/1-foundations/1-6/1_What%20is%20a%20Mesh.html

https://github.com/modelab/grasshopper-primer/tree/master/en

  • 其中github可获得markdown格式原文档

Grasshopper 中文版运算器详解2022(中英文对照)

image-20230716174219343

https://www.bilibili.com/video/BV1rZ4y1U76A/?spm_id_from=333.337.search-card.all.click&vd_source=03f46161f85a0a5c828c31ed7544a9e7

同类大佬作品

Y原创 | 利用循环电池Anemone模拟雨水流向

原创 Y [Y的学习笔记](javascript:void(0)😉 2021-07-15 20:30

img

img

img

img

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

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

相关文章

git 工具使用--分支管理

git 工具使用–分支管理 文章目录 git 工具使用--分支管理理解分支创建分支切换分支合并分支删除分支合并冲突分支管理策略分支策略bug分支删除临时分支总结 理解分支 分支管理是Git的杀手级功能之一。分支:就是科幻中的平行宇宙,当你正在电脑面前学习C…

7.15-7.16枚举题目精讲

枚举 A - TogetherB - Fractions Again? A - Together 题目描述 题意分析 题意:给出n个数,可以对每一个数做三种操作a,a1,a-1,求所有操作完成后出现次数最多的数的个数。 分析:对于每个数枚举三种操作后的值&#xf…

神经网络初识-以MINST数据集和CIFAR10数据集为例

文章目录 1 什么是神经网络1.1 神经元模型1.2 感知机1.3 多层神经网络1.4 为什么要使用神经网络 2 全连接神经网络2.1 简介2.2 梯度下降2.2 反向传播2.3 代码实现 3 卷积神经网络3.1 简介3.2 代码实现 总结 1 什么是神经网络 人工神经网络(artificial neural netwo…

【论文精读】Vis-MVSNet: Visibility-aware Multi-view Stereo Network

今天属于是重读经典了,这是一篇发表在BMVC2020上的文章,试图解决MVS中可见性的问题。该文章最近在拓展之后被发表在了IJCV上。本文的解读是基于扩展之后的IJCV版本,期刊的版本内容更加详细一点。 文章链接:BMVC2020版本和IJCV版本…

【电子学会】2023年05月图形化四级 -- 绘制同心圆

绘制同心圆 1. 准备工作 (1)保留小猫角色; (2)背景为默认白色。 2. 功能实现 (1)点击绿旗,小猫询问“请问绘制几个同心圆?”; (2)…

044、TiDB特性_PlacementPolicy

Placement Rules in SQL之前 跨地域部署的集群,无法本地访问无法根据业务隔离资源难以按照业务登记配置资源和副本数 Placement Rules in SQL之后 跨地域部署的集群,支持本地访问根据业务隔离资源按照业务等级配置资源和副本数 配置 labels 设置 Ti…

这个怎么弄?电脑没有d3dx9_43.dll?

在使用某些电脑软件或游戏时,遇到这样的提示:找不到d3dx9_43.dll,无法继续执行代码。这个问题比较常见,很多人不知道该怎么解决。如果你也遇到这个问题,不要着急。本文将详细介绍如何解决找不到d3dx9_43.dll无法继续执…

计算机网络基础第四章

一、网络层概述 1.1 网络层功能概述 主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。网络层传输单位是数据报。 功能一:路由选择与分组转发(最佳路径)功能二:异构网络互联功能三&#xf…

23年测试岗面试,高频自动化测试面试题(付答案)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 面试题1&#xff…

高等数学专题(1)三角函数公式大全

本帖的公式内容可以并列全网最全(doge),博主多方面搜集并总结了最重要和常用的三角函数公式,具体为以下几个内容: 1.诱导公式 2.平方关系 3.二倍角公式 4.半角公式 5.和差角公式 6.积化和差 7.和差化积 8.辅助角公式 9…

半小时漫画计算机

ISBN: 978-7-121-41557-9 作者:刘欣(码农翻身) 绘画:刘奕君 页数:210页 阅读时间:2023-06-03 推荐指数:★★★★★ 以漫画的形式来讲解计算机的基础知识, 主要涉及到CPU、内存、网络…

CentOs进行AKShare HTTP 部署并供外网IP调用

需求背景 周末闲聊之时,看了akshare的官方文档,之前都是通过python程序去调用数据,作为一个java开发者,我觉得甚是不太方便。认真看了一下文档,是我失敬了。大佬已经推出了aktools工具,这样就可以通过http…

时钟案例.js

案例已经在一个html中写完 要求通过node.js将其分成html css js 三个文件 正则表达式 就是把字符串表示出来 读取文件 读取css 同理还有js 和html 素材代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><me…

MySQL---索引

目录 一、索引的分类 二、索引的底层原理是什么&#xff1f; 2.1、Innodb和MyIsAM两种引擎搜索数据时候的区别&#xff1a; 2.2、为什么MySQL&#xff08;MyIsAM、Innodb&#xff09;索引选择B树而不是B树呢&#xff1f; 2.3、Innodb的主键索引和二级索引&#xff08;辅助…

【图游走+二分图】牛客小白月赛 43 F

F-全体集合_牛客小白月赛43 (nowcoder.com) 题意&#xff1a; 思路&#xff1a; 首先是经典的猜结论环节 这个结论可以想象特殊情况&#xff0c;把图看成一条链&#xff0c;多模拟几个例子 然后会发现一个很显然的结论&#xff1a;在链上的两个人点之间的距离一定是偶数 然…

【【51单片机的蜂鸣器实现小星星】】

用单片机的蜂鸣&#xff0c;实现简单小星星 我们在设置板子的时候要翻转 翻转IO口是因为使用了步进电机的多余的芯片管脚 我们翻转之后还想让它保持一段时间 就是先翻转500次 Delay(1&#xff09;之后 就是最小的单位每隔1ms 周期就是2ms 频率就是500HZ 蜂鸣器播放音乐 我们首…

【040】巧妙地穿梭双端:掌握C++ STL中deque容器的强大功能

巧妙地穿梭双端&#xff1a;掌握C STL中deque容器的强大功能 引言一、deque容器概述二、deque容器实现原理三、deque容器常用API3.1、deque的构造函数3.2、deque的赋值操作3.3、deque的大小操作3.4、deque的双端插入和删除操作3.5、deque的数据存取3.6、deque的插入操作3.7、de…

Spring IOC AOP

IOC容器 概念 IOC&#xff0c;全程Inversion of Control&#xff08;控制反转&#xff09; 通过控制反转&#xff08;创建对象的权限交给框架&#xff0c;所以叫反转&#xff09;创建的对象被称为Spring Bean&#xff0c;这个Bean和用new创建出来的对象是没有任何区别的。 官…

排序算法第三辑——交换排序

目录 ​编辑 一&#xff0c;交换排序算法的简介 二&#xff0c;冒泡排序 冒泡排序代码&#xff1a;排升序 三&#xff0c;快速排序 1.霍尔大佬写的快速排序 2.挖坑法 3.前后指针法 四&#xff0c;以上代码的缺陷与改正方法 三数取中 三路划分&#xff1a; 五&#…

真的绝了,通过注释来埋点好简单!!

目录 回顾 开始 插件编写 功能一 功能二 功能三 合并功能 运行代码 总结 这篇文章主要讲如何根据注释&#xff0c;通过babel插件自动地&#xff0c;给相应函数插入埋点代码&#xff0c;在实现埋点逻辑和业务逻辑分离的基础上&#xff0c;配置更加灵活 回顾 上篇文章…