VC编写的绘图程序实现图形旋转与颜色变化

版权申诉
0 下载量 200 浏览量 更新于2024-11-10 收藏 3KB RAR 举报
资源摘要信息:"cg.rar_绘图旋转" 知识点概述: 本资源包涉及的内容主要与计算机图形学、绘图编程以及图形变换相关。文件标题“cg.rar_绘图旋转”暗示了资源包中包含的是关于计算机绘图的基础实现,更具体地说,是围绕旋转操作的图形绘制。描述中提到的VC编写的绘图程序表明,使用的是微软的Visual C++编程环境,这是一种广泛应用于Windows平台的集成开发环境。描述中还详细指出了程序能够进行的操作:绘制点、线、面和立体图形,以及实现图形的旋转和颜色变化。这表明了程序具备基础的图形绘制功能,并且具有对这些图形进行变换的能力。而标签“绘图旋转”则强调了整个程序的核心功能是对绘制的图形进行旋转操作。压缩包子文件的文件名称列表中只有一个文件“cg.cpp”,说明整个程序很可能是一个单一的C++源代码文件。 详细知识点: 1. 计算机图形学基础 - 计算机图形学是研究如何使用计算机技术生成、处理、存储和显示图形信息的学科。 - 图形绘制是计算机图形学中的一个基础操作,包括点、线、面以及立体图形的绘制。 2. VC编程环境与Visual C++ - VC指的是Visual C++,是微软推出的一种开发环境,用于C++语言的程序开发。 - Visual C++是微软Visual Studio集成开发环境的一个组件,它提供了丰富的图形用户界面和强大的调试工具。 3. 程序功能详解 - 绘制点:在屏幕上指定位置绘制一个像素点。 - 绘制线:根据两个端点的坐标,使用算法在屏幕上绘制一条直线。 - 绘制面:在二维空间内定义一个封闭区域,使用算法填充该区域以形成平面图形。 - 绘制立体图形:在三维空间内定义图形的顶点、边和面,然后渲染出立体图形。 4. 图形变换 - 图形变换是图形学中的一个重要概念,用于对图形进行移动、缩放、旋转和扭曲等操作。 - 旋转操作是改变图形方向的一种变换方式,需要计算图形各点在旋转后的新位置。 5. 颜色变化 - 颜色变化涉及到图形的颜色属性,可以通过改变RGB值或使用调色板技术来实现图形颜色的变化。 6. C++编程语言应用 - 使用C++实现图形绘制和变换,需要对图形库进行调用,常见的库有SDL、OpenGL、DirectX等。 - C++语言的面向对象特性使得管理图形对象和实现图形变换算法变得更为高效。 7. 程序结构和实现 - 单一的C++源代码文件 cg.cpp,意味着程序可能采用模块化设计,集中处理绘图和变换逻辑。 - 对于图形旋转,可能涉及到矩阵运算和坐标变换的算法实现。 8. 开发工具和环境配置 - 要成功编译和运行cg.cpp文件,开发者需要配置好VC++开发环境,并确保所有必要的图形库和依赖项都已经安装。 总结: 资源包“cg.rar_绘图旋转”是围绕计算机图形学和绘图编程的基础知识点构建的,它通过一个可能的C++程序,展示了如何在VC++环境下实现基本图形的绘制以及图形的旋转和颜色变化。本资源包适合那些希望了解图形编程基础、图形变换算法以及如何在C++中应用这些概念的开发者。对于初学者而言,这是一个不错的学习材料,可以从中学习如何通过编程实现图形学中的基础操作。

优化这段代码 for j in n_components: estimator = PCA(n_components=j,random_state=42) pca_X_train = estimator.fit_transform(X_standard) pca_X_test = estimator.transform(X_standard_test) cvx = StratifiedKFold(n_splits=5, shuffle=True, random_state=42) cost = [-5, -3, -1, 1, 3, 5, 7, 9, 11, 13, 15] gam = [3, 1, -1, -3, -5, -7, -9, -11, -13, -15] parameters =[{'kernel': ['rbf'], 'C': [2x for x in cost],'gamma':[2x for x in gam]}] svc_grid_search=GridSearchCV(estimator=SVC(random_state=42), param_grid=parameters,cv=cvx,scoring=scoring,verbose=0) svc_grid_search.fit(pca_X_train, train_y) param_grid = {'penalty':['l1', 'l2'], "C":[0.00001,0.0001,0.001, 0.01, 0.1, 1, 10, 100, 1000], "solver":["newton-cg", "lbfgs","liblinear","sag","saga"] # "algorithm":['auto', 'ball_tree', 'kd_tree', 'brute'] } LR_grid = LogisticRegression(max_iter=1000, random_state=42) LR_grid_search = GridSearchCV(LR_grid, param_grid=param_grid, cv=cvx ,scoring=scoring,n_jobs=10,verbose=0) LR_grid_search.fit(pca_X_train, train_y) estimators = [ ('lr', LR_grid_search.best_estimator_), ('svc', svc_grid_search.best_estimator_), ] clf = StackingClassifier(estimators=estimators, final_estimator=LinearSVC(C=5, random_state=42),n_jobs=10,verbose=0) clf.fit(pca_X_train, train_y) estimators = [ ('lr', LR_grid_search.best_estimator_), ('svc', svc_grid_search.best_estimator_), ] param_grid = {'final_estimator':[LogisticRegression(C=0.00001),LogisticRegression(C=0.0001), LogisticRegression(C=0.001),LogisticRegression(C=0.01), LogisticRegression(C=0.1),LogisticRegression(C=1), LogisticRegression(C=10),LogisticRegression(C=100), LogisticRegression(C=1000)]} Stacking_grid =StackingClassifier(estimators=estimators,) Stacking_grid_search = GridSearchCV(Stacking_grid, param_grid=param_grid, cv=cvx, scoring=scoring,n_jobs=10,verbose=0) Stacking_grid_search.fit(pca_X_train, train_y) var = Stacking_grid_search.best_estimator_ train_pre_y = cross_val_predict(Stacking_grid_search.best_estimator_, pca_X_train,train_y, cv=cvx) train_res1=get_measures_gridloo(train_y,train_pre_y) test_pre_y = Stacking_grid_search.predict(pca_X_test) test_res1=get_measures_gridloo(test_y,test_pre_y) best_pca_train_aucs.append(train_res1.loc[:,"AUC"]) best_pca_test_aucs.append(test_res1.loc[:,"AUC"]) best_pca_train_scores.append(train_res1) best_pca_test_scores.append(test_res1) train_aucs.append(np.max(best_pca_train_aucs)) test_aucs.append(best_pca_test_aucs[np.argmax(best_pca_train_aucs)].item()) train_scores.append(best_pca_train_scores[np.argmax(best_pca_train_aucs)]) test_scores.append(best_pca_test_scores[np.argmax(best_pca_train_aucs)]) pca_comp.append(n_components[np.argmax(best_pca_train_aucs)]) print("n_components:") print(n_components[np.argmax(best_pca_train_aucs)])

2023-07-14 上传