首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >普朗克-黑体单色辐射力曲线绘制

普朗克-黑体单色辐射力曲线绘制

作者头像
周星星9527
发布2019-11-18 22:58:57
1.7K3
发布2019-11-18 22:58:57
举报

天才普朗克凭借深厚数学功底,总结前人数据,得到了统一的全波段的单色辐射力公式,并推动了量子力学的发展。

绘制光谱辐射力曲线如下,根据动画,可以明显感知相同波长时不同温度下单色辐射力的不同:

微信小程序体验请点击 普朗克黑体单色辐射力

Talk is cheap, show me the code:

//Pages/sun/index.js
import * as echarts from '../../ec-canvas/echarts';

const app = getApp();
var [lmd, T173, T300, T1000,T2000]=[[],[],[],[],[]];

const c1=3.741e-16,c2=1.4388e-2;
let T=300;
var Planck=(L)=>{L/=1e6; return 1e-9*c1/(Math.exp(c2/L/T)-1)/L**5};//结果放大1E-9
function calcData(){
  for(var i=0.35;i<15;i=i+0.1){
    lmd.push(i);
  }
  T=173;
  T173 = lmd.map(Planck);
  T=300;
  T300 = lmd.map(Planck);
  T = 1000;
  T1000 = lmd.map(Planck);
  T = 2000;
  T2000 = lmd.map(Planck);
}

var chart=null;
function initLineChart(canvas, width, height) {
  chart = echarts.init(canvas, null, {
    width: width,height: height
  });
  canvas.setChart(chart);

  var option = {
    title: {
      text: '不同温度黑体单色辐射力',
      left: 'center'
    },
    color: ["#00FF00", "#000000", "#0000FF", "#FF0000"],
    legend: {
      data: ['173K','300K','1000K','2000K'],
      top: 25,left: 'center',z: 100
    },
    grid: {
      containLabel: true
    },
    tooltip: {
      show: true,
      trigger: 'axis'
    },
    xAxis: {
      type: 'category',
      boundaryGap: false,
      data: lmd,
      // show: false
    },
    yAxis: {
      x: 'center',
      type: 'value',
      splitLine: {
        lineStyle: {
          type: 'dashed'
        }
      }
      // show: false
    },
    series: [{
      name: '173K',
      type: 'line',
      smooth: true,
      data: T173
    }, {
      name: '300K',
      type: 'line',
      smooth: true,
      data: T300
    }, {
      name: '1000K',
      type: 'line',
      smooth: true,
      data: T1000
      }, {
        name: '2000K',
        type: 'line',
        smooth: true,
        data: T2000
      }]
  };

  chart.setOption(option);
  return chart;
}

Page({
  onShareAppMessage: function (res) {
    return {
      title: '单色辐射力!',
      //path: '/pages/logs/logs',
      success: function () { },
      fail: function () { }
    }
  },
  data: {
    logs: [],
    ec: {onInit: initLineChart}
  },
  onLoad: function () {

  },
  onHeat1D:function(){
    calcData();
    chart.setOption({ xAxis:{data:lmd}});
    chart.setOption({ series: [{ data: T173 }, { data: T300 }, { data: T1000 }, { data: T2000 }] });
  },
  formReset:function(){

  }
})

摘录其中的计算函数如下:

var [lmd, T173, T300, T1000,T2000]=[[],[],[],[],[]];

const c1=3.741e-16,c2=1.4388e-2;
let T=300;
var Planck=(L)=>{L/=1e6; return 1e-9*c1/(Math.exp(c2/L/T)-1)/L**5};//结果放大1E-9
function calcData(){
  for(var i=0.35;i<15;i=i+0.1){
    lmd.push(i);
  }
  T=173;
  T173 = lmd.map(Planck);
  T=300;
  T300 = lmd.map(Planck);
  T = 1000;
  T1000 = lmd.map(Planck);
  T = 2000;
  T2000 = lmd.map(Planck);
}

没错使用了百度echarts组件库!再次感谢百度!(https://www.echartsjs.com/zh/index.html)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 传输过程数值模拟学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档