用VC++,以球体为例,实现Phong光照模型,可调节光强,和光源位置。
2019-12-21 22:07:23 1.81MB 球体 Phong 光照模型 VC
1
phong模型(简单光照模型) 对球体光照模型
1
VS2005里,c#+opengl绘制的立方体,圆锥体,球体,并对三维实体能进行平移,旋转,缩放,可在控件中输入模型的边长或半径改变模型的大小,控制非常方便,界面非常友好
1
fortran 编的 磁法正演程序 带实例 带完整工程文件
2019-12-21 22:01:09 3.81MB 磁法正演
1
在Unity游戏开发中,生成球体网格是一种常见的需求,它能用于创建星球、天体或者游戏中的各种球形物体。本教程将详细讲解如何通过代码在Unity中生成球体网格。 我们要理解Unity中的网格(Mesh)是游戏对象的基础元素之一,它包含了物体的几何形状信息,如顶点、法线、纹理坐标等。Unity内置了几种预定义的网格,如立方体、球体等,可以直接使用。但有时我们需要自定义更复杂的形状,这就需要用到程序化生成网格(Procedural Mesh Generation)。 在Unity中,我们可以使用`Mesh`类来创建自定义的网格。需要创建一个新的`Mesh`实例,并设置它的基本属性。例如,为了生成一个球体,我们需要计算出球体上的所有顶点位置。这可以通过数学方法实现,比如使用球面坐标到笛卡尔坐标的转换。球体的每一个顶点都可以由一个角度对(θ,φ)表示,其中θ是极角,φ是方位角。转换公式如下: ```csharp float radius = sphereRadius; Vector3 vertex = new Vector3( radius * Mathf.Sin(θ) * Mathf.Cos(φ), radius * Mathf.Cos(θ), radius * Mathf.Sin(θ) * Mathf.Sin(φ) ); ``` 接着,你需要构建三角形索引数组,它定义了哪些顶点组成表面的三角形。对于球体,可以按照纬度和经度线来划分,形成一系列环状和条带状的三角形。 创建好顶点和三角形后,还需要设置`Mesh`的其他属性,如法线、纹理坐标等。法线决定了表面的光照效果,通常与顶点位置相反。纹理坐标则决定了贴图在球体上的分布。使用`MeshFilter`组件将`Mesh`赋值给游戏对象,并添加`MeshRenderer`来显示这个网格。 在Unity中,可以创建一个C#脚本来实现这个过程,命名为`ProceduralSphere.cs`,并在`Start`或`Awake`方法中执行生成球体网格的逻辑。然后,将这个脚本挂载到一个空的游戏对象上,即可在场景中看到自定义的球体。 此外,还可以扩展这个功能,比如添加材质和纹理,使球体看起来更真实。可以使用`Material`和`Texture`类,结合`MeshRenderer`的材质属性来实现。如果需要动画效果,如旋转、缩放,可以结合`Transform`类的属性进行调整。 Unity3D的程序化网格生成能力使得开发者能够创造出各种复杂的几何形状,而不局限于内置的预设形状。这在制作如行星、天体模拟或其他需要独特外观的游戏场景时特别有用。通过学习和掌握这一技术,开发者可以提高游戏的视觉质量和创新性,为玩家带来更加沉浸式的游戏体验。
2019-12-21 21:55:32 5.21MB Unity3D
1
本压缩包包含了分析球体和圆柱体Mie散射问题的多个参考程序。1908年G.Mie最先解出了入射到悬浮着球形粒子的介质 的平面光波的麦克斯韦方程组的严格解,关于这方面的讨论就是Mie散射理论的主要内容。本压缩包中的MATLAB文件能够帮助大家更好地掌握Mie散射问题。
2019-12-21 21:48:52 57KB Mie 散射
1
Java实现一个模型、两个视图和两个控制器的功能软件,即采用MVC模式或者说是观察者模式,本程序通过输入球体半径,显示球体形状,面积体积等 Sphere.java package Model; import java.util.Observable; public class Sphere extends Observable { private double radius;//球体半径 private double area;//球体面积 private double volume;//球体体积 public Sphere() { radius=100d; area=4*Math.PI*Math.pow(radius, 2); volume=4*Math.PI*Math.pow(radius, 3)/3; } public double getRadius() { return radius; } public double getArea() { return area; } public double getVolume() { return volume; } public void setRadius(double radius) { this.radius = radius; this.area = 4*Math.PI*Math.pow(radius, 2); this.volume=4*Math.PI*Math.pow(radius, 3)/3; this.setChanged(); this.notifyObservers(); } } textView.java package View; import java.util.Observer; import java.util.Observable; import java.text.NumberFormat; import javax.swing.*; import Controller.TextController; import Model.Sphere; import java.awt.*; import java.awt.event.*; public class TextView extends JPanel implements Observer { private JLabel radiusLab;//提示用户输入球体半径 private JTextField radiusTextField;//接受用户输入球体半径 //private JLabel radiusRang; private JLabel areaLab;//显示球体面积 private JTextField areaTextField;//显示输入球体半径对应的面积 private JLabel volumeLab;//显示球体体积 private JTextField volumeTextField;//显示输入球体半径对应的体积 public TextView() { try { Init(); } catch(Exception e) { e.printStackTrace(); } } private void Init() throws Exception { radiusLab=new JLabel("球体半径"); radiusLab.setForeground(new Color(0,165,168)); //radiusRang=new JLabel("[0-200]"); radiusTextField = new JTextField(12); radiusTextField.setForeground(new Color(223,100,158)); radiusTextField.setBackground(new Color(210,204,230)); areaLab=new JLabel("球体面积"); areaLab.setForeground(new Color(0,165,168)); areaTextField = new JTextField(12); areaTextField.setBackground(new Color(193,219,219)); areaTextField.setEditable(fal
2019-12-21 21:22:42 15KB MVC 球体 Java 观察者模式
1
C++ 三维球体堆积程序 可指定容器体积 球半径分布
2019-12-21 21:06:17 61KB C++ 三维 球体 堆积
1
这是一个使用vc++6.0和openGL实现的关于三维立方体、锥形、球体的程序,这三种形状可以缩放、旋转、平移,并且还利用openGL加上了背景和光照,程序附有源代码,希望对大家有帮助!
2019-12-21 21:02:42 2.05MB 立方体 锥形 球体 openGL
1
均匀球体与长方体重力异常正演模拟Matlab代码 地球物理勘探
2019-12-21 20:58:22 1KB 重力异常正演
1