样条线怎么挤出平面_grasshopper_平面足球表面

今天咱们继续来学习一个grasshopper小案例。

今天的案例是用grasshopper来绘制足球表面,我们通过观察可以知道足球表面是由12个五边形和20个六边形构成,那就可以以weave bird里的二十面体为基础体,在每个顶点处生成正五边形,五边形在二十面体的每个面上围合出六边形,最终即可得足球表面形态。

1.提取正二十面体的边缘线,对每根边缘线进行三等分得到四个点,提取每条边缘的0号和3号点,并拍平后去除重复点,相当于得到正十二面体的顶点,再提取1号和2号点,从中查找每个顶点最近的5个点;

2.根据每个分支的5个点生成平面,在平面上绘制圆,根据圆对点进行排序,排序后的点连接成封闭多边形,多边形成面,沿着多边形的法向方向挤出;

3.沿法向向量挤出后,与原二十面体进行布尔运算;

第二种思路是得到五边形之后,用五边形线将原brep修剪,封面后,通过排序,得到体积最大的brep,即为足球形态。

0bb3c08502640ee8ff42c489f2239cc8.png

1ef8402e764904aad5b12bf3a451d044.png


欢迎关注「颜犀设」知乎专栏和知识星球。

3164f9dcf74694687e47f6af35405935.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
样条线(Spline Curve)是一种在数学和计算机图形学中常见的高级曲线生成技术。它是一种连续的曲线,通过一系列控制点进行定义,这些控制点可以自由地移动,以改变曲线的形状。样条线在许多领域都有应用,包括计算机图形、物理模拟、数据插值等。 在Python中,有许多库可以用来创建样条线。其中最常用的是SciPy库中的`scipy.interpolate.UnivariateSpline`和`scipy.interpolate.BarycentricInterpolator`。 下是一个使用`UnivariateSpline`创建样条线的简单示例: ```python from scipy.interpolate import UnivariateSpline import numpy as np # 定义控制点 control_points = np.array([[0, 0], [1, 1], [2, 2], [3, 3]]) # 创建样条线对象 spline = UnivariateSpline(control_points[:, 0], control_points[:, 1]) # 生成样条线上的点 x = np.linspace(0, 4, 1000) y = spline(x) # 绘制样条线 import matplotlib.pyplot as plt plt.plot(x, y) plt.show() ``` 在这个例子中,我们首先导入了必要的库,然后定义了一组控制点。我们使用这些控制点创建了一个`UnivariateSpline`对象,然后生成了一个在给定x值上的y值数组。最后,我们使用matplotlib库将样条线绘制出来。 请注意,样条线的形状取决于控制点的选择。通过移动和控制点,可以创建出各种形状的样条线样条线还有许多其他的应用,例如用于插值、拟合数据等。 如果你对更高级的样条线技术或更特定的应用场景感兴趣,你可能需要查阅更专门的库或教程。Python中有许多其他的库,如`curve_fit`(用于非线性拟合),以及专门用于插值和数据处理的库,如`scipy.interpolate`和`numpy`等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值