Welcome![Sign In][Sign Up]
Location:
Search - Virtual Earth

Search list

[CSharpTracertMap

Description: The tracert tool displays the various IP Addresses in the route of a network packet as it travels to a destination IP address from a source. An article which describes how tracert works and which also presents a C# component to implement tracert functionality in your projects can be found here. In the tool presented in this article, I combine the tracert component, technology to geo-locate based on IP address from HostIP.info and the Virtual Earth API to map the locations of various IP addresses that fall in the route of a network packet when it travels to a user provided destination IP address. Since the tracert component is covered thoroughly in the other article let start by looking at geo-location and the MSN Virtual Earth API.-The tracert tool displays the various IP Ad dresses in the route of a network packet as it tra vels to a destination IP address from a source. A n article which describes how tracert works and which also presents a C# component to implement tracert functionality in your projects can be f is here. In the tool presented in this article , I combine the tracert component, technology to geo-locate based on IP address fr om HostIP.info and the Virtual Earth API to map t he locations of various IP addresses that fall i n the route of a network packet when it travels to a user provided destination IP address. Since t he tracert component is covered thoroughly in t he let other article start by looking at geo-loc ation and the MSN Virtual Earth API.
Platform: | Size: 40770 | Author: 尹向东 | Hits:

[Other resource3d_terrain

Description: GIS (Geographical Information System) is a computer support system that represents data using maps. It helps people access, display and analyse data that has geographic content and meaning. For those not familiar with GIS, it used to be a niche IT market dominated by the traditional GIS and CAD companies such as Intergraph, Bentley, MapInfo, Autodesk and ESRI. Nowadays global IT giants such as Microsoft, Google and Oracle are competing for their share of the pie through products such as Virtual Earth, Google Earth and Oracle Spatial. NASA has also recently released a free, open source GIS viewer application called World Wind.-GIS (Geographical Information System) is a computer support system that represents data using maps. It helps people access, display and analyze data that has geographic co ntent and meaning. For those not familiar with G. IS, it used to be a niche IT market dominated by the tr aditional GIS and CAD companies such as Intergr aph, Bentley, and MapInfo. Autodesk and ESRI. Nowadays global IT giants su ch as Microsoft. Google and Oracle are competing for their share of the pie through products such as Virtual Eart h Google Earth and Oracle Spatial. NASA has also r ecently released a free, open source GIS viewer application called Worl d Wind.
Platform: | Size: 306609 | Author: KangBingNan | Hits:

[3D Graphic三维地形

Description: <p><strong>GIS (Geographical Information System) is a computer support system that represents data using maps. It helps people access, display and analyse data that has geographic content and meaning. For those not familiar with GIS, it used to be a niche IT market dominated by the traditional GIS and CAD companies such as Intergraph, Bentley, MapInfo, Autodesk and ESRI. Nowadays global IT giants such as Microsoft, Google and Oracle are competing for their share of the pie through products such as Virtual Earth, Google Earth and Oracle Spatial. NASA has also recently released a <font color="highlighttext" style="background-color: highlight">free</font>, open source GIS viewer application called World Wind.-GIS (Geographical Information System) is a computer support system that represents data using maps. It helps people access, display and analyze data that has geographic co ntent and meaning. For those not familiar with G. IS, it used to be a niche IT market dominated by the tr aditional GIS and CAD companies such as Intergr aph, Bentley, and MapInfo. Autodesk and ESRI. Nowadays global IT giants su ch as Microsoft. Google and Oracle are competing for their share of the pie through products such as Virtual Eart h Google Earth and Oracle Spatial. NASA has also r ecently released a <font color="highlighttext" style="background-color: highlight">free</font>, open source GIS viewer application called Worl d Wind.
Platform: | Size: 306609 | Author: kangaroos | Hits:

[Internet-Network用D3D模拟地月系

Description:

 

 

 

  一、建立空窗体

  新建一个工程,添加引用,并导入名称空间。

  加入一个设备对象变量:

private Microsoft.DirectX.Direct3D.Device device = null;

  添加初始化图形函数,并在这里面对设备对象进行实例化:

public void InitializeGraphics()
{
 PresentParameters presentParams = new PresentParameters();
 presentParams.Windowed = true;
 presentParams.SwapEffect = SwapEffect.Flip;
 presentParams.AutoDepthStencilFormat = DepthFormat.D16;
 presentParams.EnableAutoDepthStencil = true;
 device = new Microsoft.DirectX.Direct3D.Device(0, Microsoft.DirectX.Direct3D.DeviceType.Hardware, this,  CreateFlags.HardwareVertexProcessing, presentParams);
}

  当程序执行时,需要绘制场景,代码在这个函数里:

public void Render()

{
 // 清空设备,并准备显示下一帧。
 device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black , 1.0f, 0);
 // 设置照相机的位置
 SetupCamera();
 //开始场景
 device.BeginScene();
 if(meshLoaded)
 {
  mesh.Render(meshLoc);
 }
 device.EndScene();
 //显示设备内容。
 device.Present();
}

  设置照相机的位置:

private void SetupCamera()
{
 device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, this.Width / this.Height, 1.0f, 1000.00f);
 device.Transform.View = Matrix.LookAtLH(new Vector3(0.0f ,0.0f, 20.0f), new Vector3(0.0f,0.0f, 0.0f), new Vector3(0,1,0));
}

  现在改变主函数,调用我们写的初始化函数,并显示场景:

[STAThread]

static void Main()
{
 using (Form1 EarthForm = new Form1())
 {
  EarthForm.InitializeGraphics();
  EarthForm.Show();

  while(EarthForm.Created)
  {
   EarthForm.Render();
   Application.DoEvents();
  }
  EarthForm.Dispose();
}

  运行程序,会显示一个空的窗体。

  二、加入地球:

  在这一步里需创建一个3D网格对象,来作为要显示的地球,为此,在工程中新加入一个类Earth,此类可以包含所创建的网格对象的信息。

  加入一些相关变量,含义见注释:

public class Earth : BaseEarth
{
 private Material[] mMaterials; //保存材质
 private Texture[] mTextures; //保存纹理
 private Matrix locationOffset; //用来保存网格对象的相对位置
 private Mesh mMesh = null; //三角形网格对象
 private Device meshDevice; //需要显示在哪个设备上。
}

  在构造函数中,把Device设备拷贝到私有成员变量,这样就可以在这个类的其它方法内使用它,另外就是把位置变量进行赋值:

public Earth(ref Device device, Matrix location): base(ref device)
{
 meshDevice = device;
 locationOffset = location;
}

  下面这个函数是装入.X文件。

public bool LoadMesh(string meshfile)
{
 ExtendedMaterial[] mtrl;
 try
 {
  // 装载文件
  mMesh = Mesh.FromFile(meshfile, MeshFlags.Managed, meshDevice, out mtrl);
  // 如果有材质的话,装入它们
  if ((mtrl != null) && (mtrl.Length > 0))
  {
   mMaterials = new Material[mtrl.Length];
   mTextures = new Texture[mtrl.Length];

   // 得到材质和纹理

   for (int i = 0; i < mtrl.Length; i++)
   {
    mMaterials[i] = mtrl[i].Material3D;
    if ((mtrl[i].TextureFilename != null) && (mtrl[i].TextureFilename != string.Empty))

 

    {
     //前面得到的纹理的路径是相对路径,需要保存的是绝对路径,通过应用程序路径可以获得
     mTextures[i] = TextureLoader.FromFile(meshDevice, @"..\..\" + mtrl[i].TextureFilename);
    }
   }
  }
  return true;
 }
 catch
 {
  return false;
 }
}

  在这个方法内,使用Mesh.FromFile()这个方法,从给定的文件名中找到.X文件,并装入相关数据,一旦数据格式设置完成,可以从此文件中找到材质和贴图信息,并把它存放在数组中,并通过文件路径,得到纹理文件文件的路径,最后返回真值,如果整个过程出现错误,返回假值。

  下面这个Render()方法,是把此对象,即地球显示在设备对象上,此方法较简单,通过变形操作来得到网格对象的X,Y,Z坐标,接着设置网格对象的材质和纹理,最后,将每个材质和纹理应用到每个网格。

public void Render(Matrix worldTransform)
{
 /把位置变为世界坐标
 meshDevice.Transform.World = Matrix.Multiply(locationOffset, worldTransform);
 //绘制网格
 for (int i = 0; i < mMaterials.Length; i++)
 {
  meshDevice.Material = mMaterials[i];
  meshDevice.SetTexture(0, mTextures[i]);
  mMesh.DrawSubset(i);
 }
}

  现在回到窗体代码中,添加引用网格对象的相关变量:

private Earth mesh = null;
private Matrix meshLoc;
private bool meshLoaded = false;

  在图形初始化函数中,需要对网格对象进行初始化。加入下面的代码:

meshLoc = Matrix.Identity;
meshLoc.M41 = 2.0f;
mesh = new Earth(ref device, meshLoc);
if (mesh.LoadMesh(@"..\..\earth.x"))
{
 meshLoaded = true;
}

  代码第一句把网格对象的位置定为原点,接着偏移X轴2个单位,接下来从文件中得到此.X文件。如果成功设置,meshLoaded置为真。注意,这里有一个.X文件,在源代码中有此文件。

 


  在设置相机的函数中,加入一盏灯光:

device.Lights[0].Type = LightType.Directional;
device.Lights[0].Diffuse = Color.White;
device.Lights[0].Direction = new Vector3(0, -1, -1);
device.Lights[0].Update();
device.Lights[0].Enabled = true;


  此灯光较简单,仅为一个直射型白光灯。

最后,在Render()方法中,调用网格对象的Render()方法,以显示地球。

 

  三、使地球旋转

  前面用一个网格对象来建立地球,但此类没有平移,旋转及缩放等方法,下面就加入这些方法,因为这些方法具有通用性,因此可以新建一个类,把这些方法写在这些类中,使地球对象成为它的派生类。

  在工程中新添加一个类:BaseEarth;

  加入进行平移、旋转、缩放的变量:

 

private float xloc = 0.0f;
private float yloc = 0.0f;
private float zloc = 0.0f;
private float xrot = 0.0f;
private float yrot = 0.0f;
private float zrot = 0.0f;
private float xscale = 1.0f;
private float yscale = 1.0f;
private float zscale = 1.0f;


  加入相应的属性代码:

 

public float XLoc
{
 get
 {
  return xloc;
 }
 set
 {
  xloc = value;
 }
}
…………

 

  在Render()虚函数中,应用平移、旋转及缩放。
 

public virtual void Render()
{
 objdevice.MultiplyTransform(TransformType.World,Matrix.Translation(xloc, yloc, zloc));
 objdevice.MultiplyTransform(TransformType.World,Matrix.RotationAxis(new Vector3(1.0f, 0.0f, 0.0f), xrot));
 objdevice.MultiplyTransform(TransformType.World,Matrix.RotationAxis(new Vector3(0.0f, 1.0f, 0.0f), yrot));
 objdevice.MultiplyTransform(TransformType.World,Matrix.RotationAxis(new Vector3(0.0f, 0.0f, 1.0f), zrot));
 objdevice.MultiplyTransform(TransformType.World,Matrix.Scaling(xscale, yscale, zscale));
 return;
}

 

  现在回到地球类,需要将其改为新类的派生类,同时更改构造函数,另外,在Render()方法中,应先调用基类的Render()方法:


public override void Render()
{
 base.Render();
 //把位置变为世界坐标
 // meshDevice.Transform.World = Matrix.Multiply(locationOffset, worldTransform);
 //绘制网格
 。。。。。。
}

 


  现在,由于在基类中可以设置对象位置,因此,可以把与locationOffset相关,即与设置位置的变量及语句注释掉。

  四、加入月球

  在这一步加入月球,实际上是再创建一个网格对象新实例,只是把纹理进行更改即可,为了代码模块性更好,把两个对象放在一个新类CModel中,在工程中新添加一个类CModel,并声明对象实例。


public class cModel
{
 private cMeshObject mesh1 = null;
 private cMeshObject mesh2 = null;
 private bool modelloaded;
}


  把窗口代码中的Load()事件,放在CModel中,这次不仅生成了地球,而且生成了月球。

 


public void Load(ref Device device)
{
 mesh1 = new Earth(ref device);
 mesh2 = new Earth(ref device);
 if (mesh1.LoadMesh(@"..\..\earth2.x"))
 {
  modelloaded = true;
 }
 else
 {
  modelloaded = false;
 }
 if (mesh2.LoadMesh(@"..\..\moon.x"))
 {
  mesh2.XLoc += 20.0f;
  modelloaded = true;
 }
 else
 {
  modelloaded = false;
 }
}

 

  下面的Update()方法中,参数dir 用来判断是顺时针旋转还是逆时针旋转,另外,地球和月球绕Y轴增加的角度大小不同,也就决定了二者旋转的速度不同。


public void Update(int dir)
{
 if(dir > 0)
 {
  mesh1.YRot += 0.02f;
  mesh2.YRot += 0.05f;
 }
 else if(dir < 0)
 {
  mesh1.YRot -= 0.02f;
  mesh2.YRot -= 0.05f;
 }
}


  在下面的render()方法中,生成显示月球和地球:

 


public void Render(ref Device device)
{
 device.Transform.World = Matrix.Identity;
 if(modelloaded)
 {
  mesh1.Render();
  mesh2.Render();
 }
}


  把窗口代码中的加入灯光的方法,也放在此类中:


public void LoadLights(ref Device device)
{
 device.Lights[0].Type = LightType.Directional;
 device.Lights[0].Diffuse = Color.White;
 device.Lights[0].Position = new Vector3(0.0f, 0.0f, 25.0f);
 device.Lights[0].Direction = new Vector3(0, 0, -1);
}
public void Light(ref Device device)
{
 device.Lights[0].Update();
 device.Lights[0].Enabled = true;
}


  五、与鼠标交互操作

  为了实现与键盘、鼠标交互,新添加一个类:CMouse,添加引用Microsoft.DirectX.DirectInput,并添加命名空间。加入相关变量:


private Microsoft.DirectX.DirectInput.Device mouse = null;
public System.Threading.AutoResetEvent MouseUpdated;
private float x, y, z = 0.0f;
private byte[] buttons;

 

  在下面的构造函数代码中,首先创建鼠标设备,并初始化回调事件:


public CMouse(System.Windows.Forms.Control control)
{
 mouse = new Microsoft.DirectX.DirectInput.Device(SystemGuid.Mouse);
 mouse.SetCooperativeLevel(control, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive);
 mouse.Properties.AxisModeAbsolute = false;
 MouseUpdated = new System.Threading.AutoResetEvent(false);
 mouse.SetEventNotification(MouseUpdated);
 mouse.Acquire();
 Update();

 


  下面的Update()方法中获得鼠标的坐标值,并赋给私有成员变量:

public void Update()
{
 MouseState state = mouse.CurrentMouseState;
 x = state.X;
 y = state.Y;
 z = state.Z;
 buttons = state.GetMouseButtons();
}


  还需要有一个函数来检测鼠标左键是否按下:

 


public bool LeftButtonDown
{
 get
 {
  bool a;
  return a = (buttons[0] != 0);
 }
}


  六、大结局

  现在已经做完了准备工作,返回到窗口代码中,需要对这里的代码重新进行一些调整:

  在图形初始化函数中创建一个CModel类及CMouse类:

 

private CModel model = null;
private CMouse mouse = null;
private bool leftbuttondown = false;
private float mousexloc;

 

  添加对鼠标初始化的方法:

 

网管联盟bitsCN@com


public void InitializeInput()
{
 mouse = new CMouse(this);
}


  添加UpdateInputState()方法,当按下鼠标左键时,将leftbuttondown值设置为真,当鼠标抬起时,将mousexloc置0:


private void UpdateInputState()
{
 mouse.Update();
 if (mouse.LeftButtonDown)
 {
  if(leftbuttondown == false)
  {
   mousexloc = 0.0f;
   leftbuttondown = true;
  }
  else
  {
   mousexloc = -mouse.X;
  }
 }
 else
 {
  leftbuttondown = false;
  mousexloc = 0.0f;
 }
}


  在此程序中,只对X值进行了操作,即只能左右转。

  Render()方法更新如下:

public void Render()
{
 UpdateInputState();
 device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.DarkGray, 1.0f, 0);
 SetupCamera();
 device.BeginScene();
 model.Update((int)mousexloc);
 model.Light(ref device);
 model.Render(ref device);
 device.EndScene();
 device.Present();
}

 

  最后更改Main()主函数:


static void Main()
{
 using (Form1 EarthForm = new Form1())
 {
  EarthForm.InitializeGraphics();
  EarthForm.InitializeInput();
  EarthForm.Show();
  while(EarthForm.Created)
  {
   EarthForm.Render();
   Application.DoEvents();
  }
  EarthForm.Dispose();
 }
 


Platform: | Size: 11817 | Author: mantoutou | Hits:

[CSharpTracertMap

Description: The tracert tool displays the various IP Addresses in the route of a network packet as it travels to a destination IP address from a source. An article which describes how tracert works and which also presents a C# component to implement tracert functionality in your projects can be found here. In the tool presented in this article, I combine the tracert component, technology to geo-locate based on IP address from HostIP.info and the Virtual Earth API to map the locations of various IP addresses that fall in the route of a network packet when it travels to a user provided destination IP address. Since the tracert component is covered thoroughly in the other article let start by looking at geo-location and the MSN Virtual Earth API.-The tracert tool displays the various IP Ad dresses in the route of a network packet as it tra vels to a destination IP address from a source. A n article which describes how tracert works and which also presents a C# component to implement tracert functionality in your projects can be f is here. In the tool presented in this article , I combine the tracert component, technology to geo-locate based on IP address fr om HostIP.info and the Virtual Earth API to map t he locations of various IP addresses that fall i n the route of a network packet when it travels to a user provided destination IP address. Since t he tracert component is covered thoroughly in t he let other article start by looking at geo-loc ation and the MSN Virtual Earth API.
Platform: | Size: 40960 | Author: 尹向东 | Hits:

[GIS program3d_terrain

Description: GIS (Geographical Information System) is a computer support system that represents data using maps. It helps people access, display and analyse data that has geographic content and meaning. For those not familiar with GIS, it used to be a niche IT market dominated by the traditional GIS and CAD companies such as Intergraph, Bentley, MapInfo, Autodesk and ESRI. Nowadays global IT giants such as Microsoft, Google and Oracle are competing for their share of the pie through products such as Virtual Earth, Google Earth and Oracle Spatial. NASA has also recently released a free, open source GIS viewer application called World Wind.-GIS (Geographical Information System) is a computer support system that represents data using maps. It helps people access, display and analyze data that has geographic co ntent and meaning. For those not familiar with G. IS, it used to be a niche IT market dominated by the tr aditional GIS and CAD companies such as Intergr aph, Bentley, and MapInfo. Autodesk and ESRI. Nowadays global IT giants su ch as Microsoft. Google and Oracle are competing for their share of the pie through products such as Virtual Eart h Google Earth and Oracle Spatial. NASA has also r ecently released a free, open source GIS viewer application called Worl d Wind.
Platform: | Size: 306176 | Author: KangBingNan | Hits:

[OpenGL programearth

Description: 虚拟现实作品 关于一个地球仪的三维空间模型-Virtual reality works on a globe of the three-dimensional space model
Platform: | Size: 29696 | Author: 吴欢欢 | Hits:

[OpenGL programtestball

Description: OpenGL,地球模型,纹理加载,虚拟跟踪球的实现-OpenGL, the Earth model, texture loading, the realization of a virtual tracking ball
Platform: | Size: 3659776 | Author: Fang Xiaojian | Hits:

[Windows DevelopMap

Description: This the way the Virtual Earth API-This is the way the Virtual Earth API
Platform: | Size: 1024 | Author: janaka | Hits:

[GIS programDeepEarthDemo

Description: 开源代码的GIS地图引擎,DeepEarth是一个地图控件,它将微软的Silverlight 2.0平台和DeepZoom(MuliScaleImage)控件联合起来。其核心构建在这些创新的技术上以提供这样一种架构:可以将服务层、数据提供者以及你自己的客户化地图元素集成到富于表现力的用户体验中。同时它还有一些深入的示例说明了如何使用Virtual Earth Web Services以充分利用高级GIS的服务功能。通过以上这些,你就可以将一个交互式、本地的Silverlight 2.0地图集成到你的应用中了。 -DeepEarthDemo
Platform: | Size: 990208 | Author: readgo | Hits:

[androidex_map

Description: android mapapi 实例 google earth 在android虚拟机上的引用-android mapapi instance android google earth in reference to the virtual machine
Platform: | Size: 31744 | Author: 米罗 | Hits:

[.netBigsMobileMap

Description: .NET CF 环境下调用VIRTUAL EARTH WEB SERVICE做的一个地图-. NET CF environment called VIRTUAL EARTH WEB SERVICE to do a map
Platform: | Size: 165888 | Author: 黄志军 | Hits:

[CSharpInfoStrat.VE.R2.src

Description: InfoStart.VE源码 virtual earth wpf-InfoStart.VE.src
Platform: | Size: 313344 | Author: taotao | Hits:

[3D GraphicVRML5

Description: 主程序:VRML3-6月亮围绕地球转动.wrl 虚拟现实-Main program: VRML3-6 moon rotate around the Earth. Wrl Virtual Reality
Platform: | Size: 329728 | Author: 丁益 | Hits:

[GIS programArcEngine_Local

Description: 瓦片地图是被Google,微软虚拟地球等广泛应用的提升地图浏览速度的方法,ArcEngine切图工具可生成瓦片地图-Map tiles are Google, Microsoft, Virtual Earth and other widely used methods to enhance the speed of the map view, ArcEngine cutting Tool can generate the map tiles
Platform: | Size: 84992 | Author: xzh | Hits:

[3D Graphicearthmoon

Description: 地球的自转和公转,以及月球绕着地球的旋转,虚拟现实的课程设计-Earth' s rotation and revolution, and the rotation of the Moon around the Earth, the virtual reality course design
Platform: | Size: 1024 | Author: liutianchen | Hits:

[Special EffectsMosaic-Image

Description: Get image tiles from the Microsoft Virtual Earth web map servers and mosaic them 虚拟地球图像获取及拼接算法 -Get image tiles from the Microsoft Virtual Earth web map servers and mosaic them access to a virtual image of the earth and the stitching algorithm
Platform: | Size: 62464 | Author: ll | Hits:

[matlabfeichuangenzongcekong

Description: 本程序实现神州飞船跟踪测控的计算机虚拟,动画中地球、飞船和地面12个测控站同时运动。本程序是有声动画的仿真,使用时只要把bhk_med.wav文件放在D盘里然后运行该程序就Okay了-The Shenzhou spacecraft tracking and control program to achieve a virtual computer, the animation of the Earth, spacecraft and 12 ground control stations at the same time exercise. This program is a sound animation of the simulation, when used as long as the bhk_med.wav file on the D drive in and then run the program on the Okay a
Platform: | Size: 196608 | Author: wanwgei | Hits:

[WEB Codetmlog

Description: 博客管理系统给人们提供抒发个人情感、人与人之间进行良好沟通的平台,博客拥有真实的内容,可以通过博客记录下工作、学习、生活和娱乐的点滴,以及发表文章和评论,从而在网上建立一个完全属于自己的个人天地,成为当今网络最为个性化和平民化的个人展示空间。对于网民,只要拥有博客,就可以超越现实生活,拥有不同以往的全新网上生活;对于博客服务商,则必须从功能提供转型到全方位社会服务的提供,建立虚拟社会,并负责维护运行,保证博客日常生活。-The blog management system to provide people express personal emotional and interpersonal communication platform for good, the blog has a real content, can through the blog record work, study and life and every bit of entertainment, and published articles and reviews, thus in the online to establish a fully personal heaven and earth, and it has been the most personalized and common people of network show personal space. For Internet users, as long as own blog, can go beyond reality life, have different before new online life For the blog service providers, it must provide the transition to a comprehensive from the function of social service provision, to set up virtual social, and shall be responsible for the maintenance of operation, ensure the blog daily life.
Platform: | Size: 1079296 | Author: 李金鹏 | Hits:

[OtherGOOGLE-EARTH_HYDRO

Description: 利用GOOGLE EARTH 来做水动力学模拟的显示工具。利用Pathon编程。说明文件见压缩文件中。-Virtual globes such as GoogleTM Earth can be used as a visualization tool to help users create and enter input data. The authors discuss techniques for representing linear and areal geographical objects with KML (Keyhole Markup Language) files generated using computer codes (scripts).
Platform: | Size: 489472 | Author: 张开 | Hits:
« 12 »

CodeBus www.codebus.net