利用unity实现地球自转公转

一、创建一个项目

打开unity软件点击New project--->create project

二、创建太阳和地球

在Hierarchy视图中,右击空白处依次选择3D Object--->Sphere创建2个球体对象,并分别命名为earth和sun,然后分别选中earth和sun对象在Inspector视图中找到Transform组件,将earth的SCALe属性的X、Y、Z的值均调整为4,sun的Scale属性的X、Y、Z值调整为12

1-1 earth调整Scale属性
1-2 sun调整Scale属性标题

三、为对象添加纹理

1、导入全景图资源

先在网上下载地球和太阳全景图,然后将这两张图片分别拖入unity的Project视图中的Assets文件夹。

2、创建设置太阳材质

(1)、在Assets文件夹的空白处右击依次选择Create--->Material,并命名为sunMaterial;

(2)、选中sunMaterial在Inspector视图,然后将Shader设置为Panoramic;调整Tint Color为黄色或橙色,再点Select Texture,选择已导入的太阳全景图为从材质添加纹理。

3、给earth和sun对象添加纹理

将地球全景图拖到Hierarchy视图的earth对象上,sunMaterial拖到sun对象上。

3-1为对象添加纹理

四、导入天空盒资源

菜单栏点击Assets在下拉菜单依次点击Import Package--->Custom Package...然后选择要导入的包点击打开,然后在弹出的Import Unity Package弹窗中点Import导入包。

4-1导入unity资源包
4-2导入unity资源包

五、删除平行光、添加天空盒

1、在Hierarchy视图中选中Directional Light右击delete删除原有的Directional Light平行光;

2、菜单栏点击Window在下拉菜单中依次选择Rendering--->Lighting,在弹出的Lighting视图中选择Environment选择Skybox Material添加天空盒特效

5-1添加天空盒特效

六、实现地球倾斜23.5°

1、方法一:

     可以直接在earth对象的Inspector视图的Transform变换组件中调整Rotation(旋转)的X值为23.5实现倾斜(注意这里要根据自己的实际情况设置)

6-1实现地球倾斜方法一
2、方法二:

      可以利用代码实现地球倾斜。


        //rotation表示物体的世界空间旋转,是一个 Quaternion类型(四元数)
        // Quaternion.Euler()把欧拉角(角度)换成四元数表示,unity内部用四元数表示旋转
        transform.rotation = Quaternion.Euler(23.5f, 0f, 0f);

七、添加光源

选中sun对象,在Inspector视图中选择Add Component---->搜索Light添加,然后在Light中调整Type为Point(点光源),Color为橙色,Intensity(光照强度)可以大一点效果越明显。之后调整一下点光源的范围通过拖动

7-1添加点光源

八、添加自转公转代码

1、在Project视图的Assets文件夹的空白处右击依次选择create--->C# Script,并命名为Earth

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Earth : MonoBehaviour
{
    public Transform sun;
    // Start is called before the first frame update
    void Start()
    {
       
        //rotation表示物体的世界空间旋转,是一个 Quaternion类型(四元数)
        // Quaternion.Euler()把欧拉角(角度)换成四元数表示,unity内部用四元数表示旋转
        transform.rotation = Quaternion.Euler(23.5f, 0f, 0f);
    }

    // Update is called once per frame
    void Update()
    {
        //自转---顺时针沿y轴旋转
        this.transform.Rotate(0, -10f, 0);
        //公转
       transform.RotateAround(sun.position, sun.up, -1.0f);
    }
}

2、挂载Earth脚本到earth对象,然后在Inspector视图的Earth(Script)找到Sun字段拖入sun对象

8-1挂载脚本

九、运行实验完成

点击运行可以在Game视图下看到效果

【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方法,重点提出了一种基于耦合DC-DC变换器状态空间平均模型的建模策略。该方法通过对系统中多个相互耦合的DC-DC变换器进行统一建模,构建出整个微电网的集中状态空间模型,并在此基础上实施线性化处理,便于后续的小信号分析与稳定性研究。文中详细阐述了建模过程中的关键步骤,包括电路拓扑分析、状态变量选取、平均化处理以及雅可比矩阵的推导,最终通过Matlab代码实现模型仿真验证,展示了该方法在动态响应分析和控制器设计中的有效性。; 适合人群:具备电力电子、自动控制理论基础,熟悉Matlab/Simulink仿真工具,从事微电网、新能源系统建模与控制研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网中多变换器系统的统一建模方法;②理解状态空间平均法在非线性电力电子系统中的应用;③实现系统线性化并用于稳定性分析与控制器设计;④通过Matlab代码复现和扩展模型,服务于科研仿真与教学实践。; 阅读建议:建议读者结合Matlab代码逐步理解建模流程,重点关注状态变量的选择与平均化处理的数学推导,同时可尝试修改系统参数或拓扑结构以加深对模型通用性和适应性的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值