2D样条曲线编辑器:Bezier与B样条转换及曲面生成

版权申诉
5星 · 超过95%的资源 1 下载量 106 浏览量 更新于2024-10-29 1 收藏 645KB RAR 举报
资源摘要信息:"曲线和曲面.rar_Curves_Curves & Surfaces_bezier曲面_opengl 旋转_三次样条曲面" 在计算机图形学中,曲线和曲面的建模是构造复杂几何形状的基础。给定的文件标题和描述涉及到多个高级概念和技术,包括贝塞尔曲线(Bezier curves)、B样条曲线(B-spline curves)、三次样条曲线(cubic spline curves)、OpenGL旋转技术以及由这些曲线生成的旋转曲面和双三次Bezier片。 贝塞尔曲线是由法国工程师皮埃尔·贝塞尔提出的一种数学曲线,广泛应用于计算机图形学和动画制作中。贝塞尔曲线的典型应用包括字体设计、矢量图形绘制和计算机辅助设计(CAD)。在标题中提及的"Bezier曲面"指的是使用贝塞尔曲线方法生成的曲面。 B样条曲线是贝塞尔曲线的一种推广形式,它提供了更多的灵活性,允许设计师控制曲线段的连续性。B样条曲线特别适合于构造复杂的形状,因为它们可以通过控制点的调整来精细地控制曲线的形状。标题中提到的"三次样条曲面"是指使用三次B样条曲线来定义的曲面,这种曲面特别适合于制造平滑的表面。 OpenGL是一个跨语言、跨平台的应用程序编程接口(API),用于渲染2D和3D矢量图形。标题中提到的"opengl 旋转"可能指的是一种在OpenGL中实现曲面旋转的技术。在OpenGL中实现曲面的旋转能够增强三维图形的互动性,并允许用户从不同的角度查看三维模型。 文件标题和描述中的"曲线和曲面编辑器"指的应该是一个软件工具或应用程序,它能够让用户创建、编辑和查看各种曲线和曲面。在实现上,这样的编辑器需要具备一系列功能,比如增加、移动或删除控制点,转换不同类型的曲线,以及实时渲染和显示曲线和曲面。 此外,描述中提到了"两种曲线的转换",这可能是指在贝塞尔曲线和B样条曲线之间转换的技术,尤其是针对四个控制点的双三次样条曲线。这种转换技术能够使设计师根据不同的需求选择最适合的曲线表示方法。 最后,描述中提及了"产生曲面",包括"旋转曲面"和"双三次Bezier片"。旋转曲面是通过围绕一个轴旋转一个曲线(例如贝塞尔曲线)来生成的三维曲面。而双三次Bezier片是由多个双三次Bezier曲面片段拼接而成的复杂曲面,它允许对曲面的不同部分进行精细控制。 综上所述,这个资源的目标是实现一个能够编辑和转换曲线,并能够根据这些曲线生成曲面的软件工具。为了实现这些目标,开发人员需要掌握贝塞尔曲线和B样条曲线的数学基础,熟悉OpenGL API的使用,以及具备将这些理论和技术应用于实际软件开发的能力。

import pandas as pd from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score, confusion_matrix,classification_report import seaborn as sns import matplotlib.pyplot as plt # 读取数据 data = pd.read_excel('E:/桌面/预测脆弱性/20230523/预测样本/预测样本.xlsx') # 分割训练集和验证集 train_data = data.sample(frac=0.8, random_state=1) test_data = data.drop(train_data.index) # 定义特征变量和目标变量 features = ['高程', '起伏度', '桥梁长', '道路长', '平均坡度', '平均地温', 'T小于0', '相态'] target = '交通风险' # 训练随机森林模型 rf = RandomForestClassifier(n_estimators=100, random_state=1) rf.fit(train_data[features], train_data[target]) # 在验证集上进行预测并计算精度、召回率和F1值等指标 pred = rf.predict(test_data[features]) accuracy = accuracy_score(test_data[target], pred) confusion_mat = confusion_matrix(test_data[target], pred) classification_rep = classification_report(test_data[target], pred) print('Accuracy:', accuracy) print('Confusion matrix:') print(confusion_mat) print('Classification report:') print(classification_rep) # 输出混淆矩阵图片 sns.heatmap(confusion_mat, annot=True, cmap="Blues") plt.show() # 读取新数据文件并预测结果 new_data = pd.read_excel('E:/桌面/预测脆弱性/20230523/预测样本/预测结果/交通风险预测096.xlsx') new_pred = rf.predict(new_data[features]) new_data['交通风险预测结果'] = new_pred new_data.to_excel('E:/桌面/预测脆弱性/20230523/预测样本/预测结果/交通风险预测096结果.xlsx', index=False)修改代码使得显示决策树模型以及多分类的roc曲线和auc值

2023-05-30 上传