主权项 |
1.一种基于OpenGL的飞行模拟视景系统中地坑模拟方法,其特征在于步骤如下:步骤1:定义地坑坑口平面的圆心为中心点,中心点坐标为(m,n);然后在坑口所在平面上<maths num="0001"><![CDATA[<math><mrow><mi>m</mi><mo>-</mo><msqrt><mi>c</mi><mo>/</mo><mi>a</mi></msqrt><mo><</mo><mi>i</mi><mo><</mo><mi>m</mi><mo>+</mo><msqrt><mi>c</mi><mo>/</mo><mi>a</mi></msqrt><mo>,</mo></mrow></math>]]></maths><maths num="0002"><![CDATA[<math><mrow><mi>n</mi><mo>-</mo><msqrt><mi>c</mi><mo>/</mo><mi>a</mi></msqrt><mo><</mo><mi>j</mi><mo><</mo><mi>n</mi><mo>+</mo><msqrt><mi>c</mi><mo>/</mo><mi>a</mi></msqrt></mrow></math>]]></maths>的坐标区间内,按照行和列分别等间隔取点,所取点的坐标为(i<sub>1</sub>,j<sub>1</sub>)、(i<sub>1</sub>,j<sub>2</sub>)、……(i<sub>1</sub>,j<sub>l</sub>)、(i<sub>2</sub>,j<sub>l</sub>)……(i<sub>2</sub>,j<sub>l</sub>)……(i<sub>l</sub>,j<sub>l</sub>),l为任意整数;其中,a是自定义可变量,且a>0;c为地坑的深度;<img file="FDA00001844235100013.GIF" wi="191" he="56" />为坑口半径;步骤2:建立地坑的形状的数学模型:<img file="FDA00001844235100014.GIF" wi="413" he="64" />z为地坑表面内的高程值,且地平面的高程值z=0;其中:<img file="FDA00001844235100015.GIF" wi="70" he="46" />为所取点到中心点的距离,具体序列值为:<maths num="0003"><![CDATA[<math><mrow><msub><mi>x</mi><mn>1,1</mn></msub><mo>=</mo><msqrt><mrow><mo>(</mo><mi>n</mi><mo>-</mo><msub><mi>j</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>×</mo><mrow><mo>(</mo><mi>n</mi><mo>-</mo><msub><mi>j</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><mi>m</mi><mo>-</mo><msub><mi>i</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>×</mo><mrow><mo>(</mo><mi>m</mi><mo>-</mo><msub><mi>i</mi><mn>1</mn></msub><mo>)</mo></mrow></msqrt></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><msub><mi>x</mi><mn>1,2</mn></msub><mo>=</mo><msqrt><mrow><mo>(</mo><mi>n</mi><mo>-</mo><msub><mi>j</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>×</mo><mrow><mo>(</mo><mi>n</mi><mo>-</mo><msub><mi>j</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><mi>m</mi><mo>-</mo><msub><mi>i</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>×</mo><mrow><mo>(</mo><mi>m</mi><mo>-</mo><msub><mi>i</mi><mn>1</mn></msub><mo>)</mo></mrow></msqrt></mrow></math>]]></maths>……<maths num="0005"><![CDATA[<math><mrow><msub><mi>x</mi><mrow><mi>l</mi><mo>,</mo><mi>l</mi></mrow></msub><mo>=</mo><msqrt><mrow><mo>(</mo><mi>n</mi><mo>-</mo><msub><mi>j</mi><mi>l</mi></msub><mo>)</mo></mrow><mo>×</mo><mrow><mo>(</mo><mi>n</mi><mo>-</mo><msub><mi>j</mi><mi>l</mi></msub><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><mi>m</mi><mo>-</mo><msub><mi>i</mi><mi>l</mi></msub><mo>)</mo></mrow><mo>×</mo><mrow><mo>(</mo><mi>m</mi><mo>-</mo><msub><mi>i</mi><mi>l</mi></msub><mo>)</mo></mrow></msqrt><mo>;</mo></mrow></math>]]></maths>步骤3:计算地坑表面内的高程值,当x≥r时定义高程值为0;当x<r时,根据公式<img file="FDA00001844235100019.GIF" wi="387" he="64" />计算坑口区域表面内每一点对应的高程值,得到坑口所在平面上每一点的高程值为z<sub>1,1</sub>、z<sub>1,2</sub>……z<sub>l,l</sub>;步骤4:将步骤3得到的高程值,采用OpenGL建模,再运行OpenGL程序得到飞行模拟视景系统中的模拟地坑。 |