用c语言编写图形的变换程序,利用C语言实现二维图形的变换
满意答案
csmes
2013.08.27
采纳率:41% 等级:13
已帮助:8466人
你先看看吧,思路大概就是这样,不懂的问我。
#include
#include
#include
using namespace std;
struct point
{
float x;
float y;
};
void translation(point*pt, float xp,float yp,int num)//num代表点的个数
{
for(int i=0;i
{
(pt+i)->x+=xp;
(pt+i)->y+=yp;
}
}
void scale(point *pt,float xs,float ys,int num)
{
for(int i=0;i
{
(pt+i)->x*=xs;
(pt+i)->y*=ys;
}
}
void rotation(point *pt,float angle,int num)
{
int a[2][2];
angle=angle/180*3.141592657;
a[0][0]=cos(angle);
a[0][1]=-sin(angle);
a[1][0]=sin(angle);
a[1][1]=cos(angle);
point* temp;
for(int i=0;i
{
temp->x=(pt+i)->x;
temp->y=(pt+i)->y;
(pt+i)->x=temp->x*a[0][0]+a[0][1]*temp->y;
(pt+i)->y*=temp->x*a[1][0]+a[1][1]*temp->y;
}
}
int main()
{
int i=0,N,mode,angle,xp,yp,xk,yk,num;
cout<
scanf("%d",&N);
num=N;
point pt[10];
while(N--)
{
printf("please input points(x,y):\n");
scanf("%f%f",&pt[i].x,&pt[i].y);
i++;
}
printf("please input motions\n");
printf("0 stand for translation:\n");
printf("1 stand for scale:\n");
printf("2 stand for rotation:\n");
scanf("%d",&mode);
switch(mode)
{
case 0:
printf("please input the translation in x and y direction respectivly:\n");
cin>>xp>>yp;
translation(pt, xp,yp,num);
break;
case 1:
printf("please input the scale in x and y direction respectivly:\n");
scanf("%f%f",&xk,&yk);
scale(pt, xk,yk,num);
break;
case 2:
printf("please input the angle:\n");
scanf("%f",&angle);
rotation(pt, angle,num);
break;
}
printf("after translatiton or scale or rotation:\n");
for(int i=0;i
printf("%f %f\n",pt[i].x,pt[i].y);
}
12分享举报
用c语言编写图形的变换程序,利用C语言实现二维图形的变换相关推荐
- C语言试题四十七之程序定义了N×M的二维数组,并在主函数中自动赋值。请编写函数function(int a[N][M], int m),该函数的功能是:将数组右上半三角元素中的值乘以m。
1. 题目 程序定义了N×M的二维数组,并在主函数中自动赋值.请编写函数function(int a[N][M], int m),该函数的功能是:将数组右上半三角元素中的值乘以m. 2 .温馨提示 C ...
- 计算机图形学——二维图形几何转换
文章目录 一.实验目的 二.实验要求 三.实验步骤 1.打开直线扫面转换MFC项目工程,及其中的直线类CLine. 2.二维点类CP2添加齐次坐标 3.设计实现二维图像几何变换类 1.新建二维图形几何 ...
- c语言二维图形变换程序,C语言图形编程(五、二维图形变换-01)(国外英文资料).doc...
C语言图形编程(五.二维图形变换-01)(国外英文资料) C语言图形编程(五.二维图形变换-01)(国外英文资料) The first user coordinates to the screen c ...
- 如何用c语言编写炫酷烟花程序,C语言实现放烟花的程序
这是一个利用C语言编写放烟花的程序(同时也可以播放音乐),供大家参考,具体内容如下 代码如下 #pragma once #include #include //图形界面库头文件 #include // ...
- 利用C语言编写放烟花的程序(同时也可以播放音乐)
这是一个利用C语言编写放烟花的程序(同时也可以播放音乐) 代码如下 #pragma once #include<stdio.h> #include<graphics.h> // ...
- 利用C语言编写放烟花的程序(春节专用)
利用C语言编写放烟花的程序(春节专用) #pragma once #include<stdio.h> #include<graphics.h> //图形界面库头文件 #incl ...
- c语言程序命令行,ttyd(C语言编写的命令行程序) v1.3.1 免费版
ttyd是一个C语言编写的命令行程序,可以把任意命令行程序分享到网页上操作,可以看做是个网页版的远程终端,支持 Linux.macOS 系统,还可以运行在 OpenWrt 之类的嵌入式系统上. 功能特 ...
- C语言编写一个四位数的和,c语言编写一段程序,输入一个四位数,输出各位数字的和...
用C语言编写程序,输入一个正整数n(1 #include"stdio.h"intmain(){\x09inti,j,n;\x09inta[12];\x09intmin,mx;\x0 ...
- c语言编写51单片机中断程序,执行过程是怎样的?
Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序: #include<reg52.h> void main(void) { EA=1; //开放总中断 ...
- C语言编程编制职工档案管理程序,C语言 编写一个职工档案程序.doc
C语言 编写一个职工档案程序 一.实验项目: 实验6 课程设计 (时间安排:6课时) 二.实验内容: 编写一个职工档案程序,设计实现如下功能: 建立一个职工数据结构,结构包含姓名.序号.性别和年龄信息 ...
最新文章
- Redis 入门安装(Linux)
- SAP QM 使用QP01事务代码真的不能创建含有Multiple Specification的检验计划
- 友元程序集(C# 和 Visual Basic)
- [锋利JQ]-图片提示效果
- Spring - Java/J2EE Application Framework 应用框架 第 5 章 Spring AOP: Spring之面向方面编程
- 科普文丨Java 单元测试相关概念理清
- webbrowser设置横向打印_C# 日常记录:指定打印机/纸张/纸盒(静默打印)(不弹窗打印)WinForm篇...
- Eratosthenes筛法求1-100之间的素数
- django基础篇05-Form验证组件
- 数学建模(零)入门统领
- 电脑文件备份到哪里最安全?
- 手机离线地图进行GPS定位
- 在安装软件CAJViewer时出现,“错误1327。无效驱动器:F:
- Flask Request对象
- 拿信用卡套个首付买房子——引火自焚
- 黄教头第六周作业 一个基础的反射型xss
- 遗传算法实现寻找函数最值
- ⑪(面试篇 2/3)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)
- IDEA里面的各种小图标
- 【图文教程】注册Oculus开发者账号
热门文章
- 算法:时间、空间复杂度
- 08. Django基础:模板层
- 04. Django基础:路由配置
- Go语言:生成随机数
- asp.net html 扩展,StaticHtml
- 沈是计算机专业考研分数线,计算机#2017年东北大学计算机考研究生分数线_计算机考研究生复试分数线...
- 深度学习笔记_评分函数/损失函数
- ubuntu14.04 配置C/C++开发IDE
- Gauss-Jordan法求逆矩阵
- CVPR 2022|只用一张图+相机走位,AI就能脑补周围环境!