C++实现均匀照明的自由曲面设计

本文探讨如何使用C++实现自由曲面设计,以达到光线经过曲面后在特定距离产生均匀照明的效果。虽然目前内容尚不完善,作者欢迎读者进行讨论并分享相关计算方法。
摘要由CSDN通过智能技术生成

当光线通过自由曲面时,可以实现一定距离处的照射物处于均匀照明状态,由于刚开始编辑,有很多粗糙的地方,欢迎讨论

公式没有给出,对于计算可以去网上找,本文给出了用c++实现的方法。



QQ:852063127

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
double   const   PI = acos(double(-1));
int main()
{
    int N=800 ;//光通量划分成800份
    int H=1000 ;//点光源距地面的高度
    double n=1.49386 ;//折射
	int a=60;//发散角
    double alpha = a* PI/180;
    double R = H*tan(alpha);
    double* cita = new double[N + 2];
    double* r = new double[N + 2];
    double temp;
    int t = 0;
    cita[1] = 0;
    r[1] = 0;    
    for (int i = 1; i <= N + 1; i++)
    {
        r[i + 1] = sqrt(r[i] * r[i] + R*R / N);
        temp = sin(cita[i]);
        cita[i + 1] = asin(sqrt(temp*temp 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值