• 第一次编程作业


     1 #include <iostream>
     2 #include <stdlib.h>
     3 #include <Eigen/Dense>
     4 #include <math.h>
     5 /* run this program using the console pauser or add your own getch, system("pause") or input loop */
     6 using namespace std;
     7 using namespace Eigen; 
     8 
     9 void find(char *strr,Vector2d &pt)
    10 {
    11     int i=1,j=0;
    12     char s1[5],s2[5];
    13     for(;i<10&&strr[i]!=',';i++)
    14     {
    15         s1[j]=strr[i];
    16         pt[0]=atof(s1);j++;
    17     }
    18     i++;
    19     for(j=0;i<20&&strr[i]!=')';i++)
    20     {
    21         s2[j]=strr[i];
    22         pt[1]=atof(s2);j++;    
    23     }
    24 }
    25 void tt(int n1,Vector2d &pt1,Vector2d &pt2,Vector2d &pt3)
    26 {
    27         char str1[20],str2[20],str3[20];
    28         switch(n1){
    29             case 3: {
    30                 cin>>str3;
    31                 find(str3,pt3);
    32             }
    33             case 2: {
    34                 cin>>str2;
    35                 find(str2,pt2);
    36             }    
    37             case 1: {
    38                 cin>>str1;
    39                 find(str1,pt1);
    40                 break;
    41         }
    42             default:cout<<"输入错误"<<endl;
    43         }
    44                         
    45 }
    46 
    47 
    48 int main(int argc, char** argv) {
    49     char name[60],trans[20],name1[60],str[20],s[20];
    50     int n;
    51     double deg;
    52     Vector2d move,v1,v2,v3;
    53     MatrixXd rot(2,2);
    54 
    55     cout<<"请输入 ";
    56     cin>>name;
    57         cin>>n;
    58     tt(n,v1,v2,v3);
    59     cout<<"请输入操作指令"<<endl;
    60     cin>>trans;
    61     cin>>name1;
    62     if(trans[0]=='m'&&trans[1]=='o'&&trans[2]=='v'&&trans[3]=='e'&&trans[4]==0)
    63     {
    64         cin>>str;
    65         s[0]=str[1];
    66         move[0]=atof(s);
    67         s[0]=str[3];
    68         move[1]=atof(s);
    69         switch(n)
    70         {
    71         case 3:v1+=move;cout<<"("<<v1<<")"<<endl;
    72         case 2:v1+=move;cout<<"("<<v1<<")"<<endl;
    73         case 1:v1+=move;cout<<"("<<v1<<")"<<endl;break;
    74         default: cout<<"输入出错"<<endl;
    75          
    76         }
    77     }
    78     else if(trans[0]=='r'&&trans[1]=='o'&&trans[2]=='t'&&trans[3]=='a'&&trans[4]=='t'&&trans[5]=='e'&&trans[6]==0)
    79     {
    80         cin>>deg;
    81         deg=deg*3.14/180;
    82         rot(0,0)=cos(deg);
    83         rot(0,1)=-sin(deg);
    84         rot(1,0)=sin(deg);
    85         rot(1,1)=cos(deg);
    86         
    87          switch(n)
    88         {
    89         case 3:v3=v3.transpose()*rot;cout<<"("<<v3<<")"<<endl;
    90         case 2:v2=v2.transpose()*rot;cout<<"("<<v2<<")"<<endl;
    91         case 1:v1=v1.transpose()*rot;cout<<"("<<v1<<")"<<endl;break;
    92         default: cout<<"输入出错"<<endl;  
    93         }  
    94     }  
    95     return 0;
    96 }
    输入点

    输入线段两端点
    输入三角形三个顶点
    
    
  • 相关阅读:
    《山里的日子(记录片)》观后感——回不去的农村
    Android事件分发传递
    《活着》观后感——时代
    Android6.0动态获取权限
    Androidannotations框架
    Android屏幕适配笔记
    Android 网络状态检测
    氢氘交换
    springboot datajpa 简明说明
    算法学习
  • 原文地址:https://www.cnblogs.com/hangfengz/p/5008718.html
Copyright © 2020-2023  润新知