- 博客(21)
- 收藏
- 关注
原创 计算机图形学MFC 实现
代码下载地址觉得有帮助的给个starSudaCgMFC介绍计算机图形学课程实验包含二维点类三维点类的建立,面类,二维变换,三维变换,zbuffer,背面剔除,反走样划线,颜色填充,模型数据文件读入开源协议MIT License软件架构说明├── Readme.md├── LICENSE├── .gitignore├── Test4│ ├── res│ ├── 模型数据文档│ │ ├── 1.txt //人脸数据│ │ ├── 3.txt
2021-12-04 19:56:58 1438
原创 方格涂色问题
排成一排n个方格,用三种不同颜色填充,求所有满足的涂法采用递归f(n) = f(n-1) + 2 *f(n-2)#include<stdio.h>#include<stdlib.h>int main(void){ int n,i; long long a[51] a[1] = 3; a[2] = 6; a[3] = 6; for(i=4;i<51;i++) { a[i] = 2*a[i-2]+a[i-1]; } while(scanf("%d"
2021-10-24 22:16:46 1103
原创 MFC绘制独孤信印章
基于之前的背面剔除算法,我们需要设计一个印章类CXin.h#pragma once#include"P3.h"#include"Facet.h"#include"P2.h"#include"Projection.h"#include"Vector.h"#define ROUND(d) int(d+0.5)class CXin{public: CXin(void); virtual ~CXin(void); void ReadPoint(void); void ReadFacet(
2021-10-22 20:21:28 667
原创 MFC背面剔除算法
本文是基于之前的三维变换三维变换完成的首先需要添加一个向量类CVectorVector.h#pragma once#include"P3.h"#include<math.h>class CVector{public: CVector(void); virtual ~CVector(void); CVector(double x, double y, double z); CVector(const CP3& p); CVector(const CP3&
2021-10-21 19:47:19 739
原创 MFC制作简易画板
实验二:简易画板作者:19074021269赵龙辉相关变量初始化CMFCApplication3View::CMFCApplication3View() noexcept{ // TODO: 在此处添加构造代码 m_PenSize = 1; m_PenColor = RGB(0, 0, 0); m_BrushColor = RGB(0, 0, 0); m_PointBegin = CPoint(0, 0); m_pointEnd = CPoint(0, 0); m_DrawType =
2021-10-20 15:30:04 1561
原创 MFC三维变换
所需类P2类class CP2{public: CP2(void); virtual ~CP2(void); CP2(double x, double y); friend CP2 operator + (const CP2& p0, const CP2& p1); friend CP2 operator - (const CP2& p0, const CP2& p1); friend CP2 operator * (const CP2& p,
2021-10-19 19:40:22 1777
原创 MFC在屏幕的中间绘制如图所示的正五边形与正五角星的嵌套结构。试取递归深度n为4,请编写递归函数
OnDraw CRect rect; GetClientRect(&rect); //将坐标轴及原点移至中央 pDC->SetMapMode(MM_ANISOTROPIC); pDC->SetWindowExt(rect.Width(), rect.Height()); pDC->SetViewportExt(rect.Width(), -rect.Height()); pDC->SetViewportOrg(rect.Width() / 2, rect.Hei
2021-09-23 09:06:13 1243
原创 MFC把一个半径为R的圆40等份,以每个等分点为圆心,以r为半径画圆。假定R=r,试编程绘制图所示的环。分别测试R>r,R<r时候得到的图形。
OnDraw部分CRect rect;GetClientRect(&rect);//将坐标轴及原点移至中央pDC->SetMapMode(MM_ANISOTROPIC);pDC->SetWindowExt(rect.Width(), rect.Height());pDC->SetViewportExt(rect.Width(), -rect.Height());pDC->SetViewportOrg(rect.Width() / 2, rect.Height()
2021-09-23 09:03:14 1010
原创 共享栈
#include <iostream>using namespace std;#define Maxsize 20struct ShareStack{ int data[Maxsize]; int top1, top2;};int InitShareStack(ShareStack* S){ S->top1 = -1; S->top2 = Maxsize; return 0;}int PushShareStack(ShareStack*
2021-04-20 14:55:21 61
原创 单链表基本操作
#include <iostream>using namespace std;typedef char ElemType;struct LinkList{ ElemType data; LinkList* next;};//初始化void InitList(LinkList*& L){ L = (LinkList*)malloc(sizeof(LinkList)); L->next = NULL;}//尾插void CreateListR(Link
2021-04-06 22:15:19 84
原创 顺序表合并
给定两个顺序表L1,L2,顺序表结构如下struct SqList{ int data[MAX]; int length;}假设L1中元素递增,L2中元素递减。设计一个算法,将L1和L2合并为一个新的顺序表L3,且L3中的元素递增#include <iostream>#define MAX 100using namespace std;struct SqList{ int data[MAX]; int length;};void createList(SqLis
2021-03-31 08:30:05 525
原创 判断天数
输入一个年月日,格式如2020/3/26,判断这一天是这一年的第几天#include <iostream>using namespace std;int day(int y, int m, int d){ int a[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; int i, sum=0; for (i = 0; i <m-1; i++) { sum = sum + a[i]; } if (m > 2) {
2021-03-26 19:35:06 105
原创 判断素数
#include <iostream>using namespace std;int isprime(int m){ int i; for (i = 2; i <= sqrt(m); i++) { if (m % i == 0) return 0; } return 1;}int main(){ int n; cin >> n; if (isprime(n)) { cout << "is prime" <<
2021-03-26 19:24:26 55
原创 判断润年
#include <iostream>using namespace std;int main(){ int n; cin >> n; if (n % 4 == 0 && n % 100 != 0 || n % 400 == 0) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0;}
2021-03-26 19:08:32 95
原创 有n个人围成一圈,顺寻排号,从第一个人开始报数(从1到3)凡报到3的人退出圈子,问最后留下的人是原来的第几号c++
#include <iostream>#include <string> #define MAX 100using namespace std;int main(){ int i, n, j,k,w; int count = 0; int a[MAX], b[MAX]; cout << "请输入人数: "; cin >> n; for (i = 0; i < n; i++) { a[i] = i + 1; } for (
2021-03-14 15:17:06 193
原创 c++输入一个整数,输出该整数位数,并倒序输出
#include <iostream>#define N using namespace std;int main(){ int n, i, j, temp, number=0; cout << "请输入一个小于10位的整数" << endl; cin >> n; i = 0; do { temp = n % 10; n = n / 10; number = number*10+temp; i++; } while
2021-03-11 23:05:54 7016
原创 c++输出乘法口诀表
#include <iostream>using namespace std;int main(){ int i,j,n; for (i = 1; i <= 9; i++) { for (j = 1; j <= i; j++) { n = i * j; cout << j << "x" << i << "=" << n << "\t"; } cout << en
2021-03-11 22:19:17 510
原创 leetcode题解2020/11/8
给你一个整数 n 。按下述规则生成一个长度为 n + 1 的数组 nums :nums[0] = 0nums[1] = 1当 2 <= 2 * i <= n 时,nums[2 * i] = nums[i]当 2 <= 2 * i + 1 <= n 时,nums[2 * i + 1] = nums[i] + nums[i + 1]返回生成数组 nums 中的 最大 值#include <stdio.h>int getMaximumGenerated(int n
2020-11-08 11:32:59 247
原创 leetcode 题解2020/11/3
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。#include <stdio.h>bool ishuiwenshu(long int x){ int t; long int num=0; if(x<0||x>2^31-1) return false; while(x!=0) { t=x%10; num=mum*10+t; x=x/10; } if (num==x||x=0) re
2020-11-03 10:29:48 696
原创 leetcode题解2020/11/3
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。假设我们的环境只能存储得下 32 位的有符号整数。请根据这个假设,如果反转后整数溢出那么就返回 0。#include<stdio.h>int main(void){ int x,t; long int num=0; scanf("%d",&x); while(x!=0) { t=x%10; num=num*10+t; x=x/10;
2020-11-03 09:53:45 44
原创 leetcode题解2020/11/3
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。暴力法c语言#include <stdio.h>#define N 20void twonum(int nums[N],int target){ int a,b; for(a=0;a<N;a++) for(b=a+1;b<N;b++) {
2020-11-03 09:26:51 91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人