首页 > 其他分享 >打卡3

打卡3

时间:2023-04-19 22:24:26浏览次数:40  
标签:MYFLOAT0 double pt2pt3 dot2n1 && pt1pt2 打卡

4.

#include<iostream>

using namespace std;

class CRectangle

{

 private:

  double h,w;

  public:

   CRectangle(double h=1,double w=1):h(h),w(w)

   {

   

   }

   void input()

   {

    cin>>h>>w;

    if(h<0||h>50)

    h=1.0;

    if(w<0||w>50)

    w=1.0;

   }

   void Perimeter()

   {

    cout<<(h+w)*2;

   }

  

};

int main()

   {

    CRectangle A;

    A.input();

    A.Perimeter();

    return 0;

   }

 

bool CalNormalVector(double x1,double y1,double z1,double x2,double y2,double z2,double x3,double y3,double z3,double &dx,double &dy,double &dz)
{
double pt1pt2[3]={x2-x1,y2-y1,z2-z1};
double pt2pt3[3]={x3-x2,y3-y2,z3-z2};
double pt1pt3[3]={x3-x1,y3-y1,z3-z1};
double nx=0.0,ny=0.0,nz=0.0f;
cross(pt1pt2[0],pt1pt2[1],pt1pt2[2],pt2pt3[0],pt2pt3[1],pt2pt3[2],nx,ny,nz);
if (nx>-MYFLOAT0&&nx<MYFLOAT0&&
ny>-MYFLOAT0&&ny<MYFLOAT0&&
nz>-MYFLOAT0&&nz<MYFLOAT0)
{
return false;
}
//
bool flag=normalize(nx,ny,nz,dx,dy,dz);
if (!flag)
{
return false;
}
//测试,三向量与法向量数量积都是0
double dot1n1=dot(dx,dy,dz,pt1pt2[0],pt1pt2[1],pt1pt2[2]);
double dot2n1=dot(dx,dy,dz,pt2pt3[0],pt2pt3[1],pt2pt3[2]);
double dot3n1=dot(dx,dy,dz,pt1pt3[0],pt1pt3[1],pt1pt3[2]);
if (!(dot1n1>-MYFLOAT0&&dot1n1<MYFLOAT0&&
dot2n1>-MYFLOAT0&&dot2n1<MYFLOAT0&&
dot2n1>-MYFLOAT0&&dot2n1<MYFLOAT0))
{
return false;
}
return true;
}

标签:MYFLOAT0,double,pt2pt3,dot2n1,&&,pt1pt2,打卡
From: https://www.cnblogs.com/bdsz/p/17334850.html

相关文章

  • c打卡补2
    1.classCircle{private:   doubler;public:   Circle(doubler)   {cout<<"Constructorcalled"<<endl;       this->r=r;   }   Circle(Circle&c)   {       this->r=c.r;       cout<<"Copy......
  • 4/19打卡
    classPeople{protected:intage;stringname;public:People(){}People(inta,stringn):age(a),name(n){}virtual~People(){}voidsetValue(intm,stringstr){age=m;name=str;}virtualvoiddi......
  • 第四天打卡
    #include<iostream>usingnamespacestd;intmain(){inta,c,x,i;for(a=0;a<=9;a++)for(c=0;c<=9;c++){if(a!=c){//cout<<a<<c<<endl;x=1000*a+100*a+10*c+c;//......
  • 每日打卡-8.2
    一.问题描述输入一个长度为n的整数序列。接下来再输入m个询问,每个询问输入一对l,r。对于每个询问,输出原序列中从第l个数到第r个数的和。二.设计思路 直接套用模板即可三.流程图四.伪代码 1五.代码实现 1#include<iostream>usingnamespacestd;constintN=1000......
  • 每日打卡-8.1
    一.问题描述  输入一个n行m列的整数矩阵,再输入q个询问,每个询问包含四个整数x1,y2,x1,y2,表示一个子矩阵的左上角坐标和右下角坐标。  对于每个询问输出子矩阵中所有数的和。二.设计思路很典型的二维前缀模板题 先求前缀和,再利用公式ans=s[x2][y2]-s[x2][y1-1]-s[x......
  • 2022.4.19编程一小时打卡
    一、问题描述:设计一个类people,有保护数据成员:age(年龄,整型),name(姓名,string),行为成员:两个构造函数(一个默认,另一个有参数);默认析构函数;voidsetValue(intm,stringstr)给age和name赋值;有一个void类型的纯虚函数display()。设计一个学生类student,公有继承类people,有私有成员......
  • 打卡1
    问题描述:一只公鸡值五钱,一只母鸡值三钱,三只小鸡值一钱,现在要用百钱买百鸡,请问公鸡、母鸡、小鸡各多少只?流程图: 伪代码:cock<-0forcock<-0To20hen=0forhen<-0To33chicken=0forchicken<-0To100ifcock+hen+chicken=100&&cock*5+hen*3+chicken/3=100outputcock......
  • 打卡2
    问题描述:小明有5本新书,要借给A、B、C三位小朋友,若每人每次只能接1本,则可以有多少种不同的借法?流程图: 伪代码:fora<-1to5forb<-1to5forc<-1to5ifa=b=cthencontinueelseoutputa,b,c代码:#include<iostream>usingnamespacestd;intmain(){inta,b,c;f......
  • 第6天打卡
    问题:输入N个数升序排序设计:n个数比较n-1次每一次把最大的排在最前面 源代码:#include<stdio.h>intmain(){inti,j,a[N],t;for(i=0;i<N;i++)scanf("%d",&a[i]);for(i=1;i<=N-1;i++)for(j=0;j<N-1;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(......
  • 打卡3
    问题描述:中国有句俗语叫:“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。流程图: 伪代码:inputyear,month,dayjianday<-0fori<-1990toyear-1ifi是闰年thenjianday=jianday+366elsejianday=ji......