欢迎来到天天文库
浏览记录
ID:48918247
大小:868.48 KB
页数:41页
时间:2020-02-06
《场论与复变函数大作业.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、......场论与复变函数大作业问题1问题I描述 在圆环内一点(x0,y0)处有一条光线射出 圆环半径为R 推导该光线经过m次反射后方向的公式 伴随(x0,y0)的不同,分析按照相同方向射出的光线反射方向有什么特点? 给定(x0,y0),分析按照不同方向射出的光线反射方向有什么特点? 分析:给定起始点(x,y),反射角angle,反射次数n根据(x,y),angle可以计算出入射光线在圆周上的两个(x0,yo)(x1,y1)。计算方法如下:doublek=tan(angle);doublex1,y1;//设出弦长中点的坐标,辅助求解交点doublelength;//反射弦长的一半
2、x1=k*(k*x0-y0)/(k*k+1);y1=-(k*x0-y0)/(k*k+1);.专业.专注.......length=(double)sqrt((double)(R*R-x1*x1-y1*y1));pnode[0].x=x1-length*cos(angle);pnode[0].y=y1-length*sin(angle);pnode[1].x=x1+length*cos(angle);pnode[1].y=y1+length*sin(angle);然后由(x0,y0)(x1,y1)可得出(x2,y2);同理由(xi,yi)(xi-1,yi-1)可求出(xi+1,yi
3、+1),依次即可求出所有反射点实现方法:pnode[i+1].x=2*(pnode[i].x)*((pnode[i-1].x)*(pnode[i].x)+(pnode[i-1].y)*(pnode[i].y))-(pnode[i-1].x);pnode[i+1].y=2*(pnode[i].y)*((pnode[i-1].x)*(pnode[i].x)+(pnode[i-1].y)*(pnode[i].y))-(pnode[i-1].y);.专业.专注.......用C语言编写代码运行结果如下:.专业.专注.......翻译成MATLAB语言,作图效果:结论伴随(x0,y0)的不
4、同,分析按照相同方向射出的光线反射方向有什么特点?取(0.5,0.3)为发射点,角度分别用45,60,75反射25次作图比较.专业.专注........专业.专注.......给定(x0,y0),分析按照不同方向射出的光线反射方向有什么特点?确定入射角为62°,反射25次。入射点依次取(-0.5,0.3)(0,0.3)(0.5,0.3).专业.专注.......附C程序代码/********************************************************************************************************
5、**********************************************复变函数大作业程序(一).专业.专注.......姓名:运世洁02103094日期:2011.11.27*******************************************************************************************************************************************************/#include#include#include6、onio.h>#defineR1//圆的半径备注:修改时,注意改变后面printf函数输出时的格式typedefstructpnode//一个点的坐标{doublex;doubley;}Coordinate;Coordinatepnode[100]={0,0};//储存各反射点坐标//子函数声明**********************************************************************************************************************************************.专业7、.专注.......voidmy_func(inti);//主要功能函数,计算各反射点voidmy_init(doublex0,doubley0,doubleangle);//初始化条件voidlieju(intstart,intend);//输出第start到第end次反射过程//主函数*************************************************************************************************
6、onio.h>#defineR1//圆的半径备注:修改时,注意改变后面printf函数输出时的格式typedefstructpnode//一个点的坐标{doublex;doubley;}Coordinate;Coordinatepnode[100]={0,0};//储存各反射点坐标//子函数声明**********************************************************************************************************************************************.专业
7、.专注.......voidmy_func(inti);//主要功能函数,计算各反射点voidmy_init(doublex0,doubley0,doubleangle);//初始化条件voidlieju(intstart,intend);//输出第start到第end次反射过程//主函数*************************************************************************************************
此文档下载收益归作者所有