65.9K
CodeProject 正在变化。 阅读更多。
Home

C# 赛道编辑器

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.82/5 (17投票s)

2008年11月2日

CPOL

2分钟阅读

viewsIcon

73300

downloadIcon

6033

这个应用程序旨在在赛道地图图片上放置路标,并设置赛道点的高度,以便生成包含赛道信息的 TXT 或 XML 文件。

引言

这个应用程序旨在在赛道地图图片上放置路标,并设置赛道点的高度,以便生成一个 *.txt*.xml 文件,其中包含赛道信息。该应用程序使用 ZedGraph 库进行绘图功能,并使用 SharpGL 库进行 3D 视图。 

描述 

TrackEd 是一个用于构建 SimVE 软件赛道文件的工具。SimVE 是一个基于 Matlab/Simulink 的应用程序,用于在 Shell ecoMarathon 等能源竞赛中进行车辆模拟。SimVE 由 ESTACA 的四名学生于 2006 年开发,用于 PV3e 团队。SimVE 需要一个赛道文件作为模拟器的输入,而到目前为止,赛道文件都是手工制作的。因此,SimVE TrackEd 的目的是以一种简单的方式构建赛道文件。

本文将介绍应用程序的关键点和主要功能。

定义赛道地图

赛道定义分为两部分。首先是赛道地图,即赛道点的 X,Y 坐标。为了获得 X,Y 点,我们使用从上方看到的赛道图片,然后定义比例尺并计算图片上的长度与实际长度之间的比率。  之后,用户在赛道图片上标记点来描绘赛道路径;每个点随后被转换到真实的坐标系中。

为了执行这些操作,我们使用两层 C# 组件。第一层是一个只显示赛道图片并包含缩放、移动图片以及绘制路径、添加路径点等关键功能的控件。第二层是一个 UserControl,它包含前一个用户控件、一些控制按钮(例如打开赛道图片、模式选择(比例尺或赛道路径))以及一些回调函数。

Tracking_Nogaro.jpg

定义赛道剖面

第二部分包括定义赛道点的高度。为了设置点的高度,我们使用一个表格(从起点开始的线性距离,点的高度)。一旦表格定义好,地图上定义的赛道点的高度将通过对高度表格(也称为赛道剖面)的插值来计算。

为了允许用户定义赛道剖面,我们使用一个带有 datagridview 用于编辑表格和 ZedGraph 用于绘制表格的 C# UserControl。

Profiling_Nogaro.jpg

查看赛道文件      

赛道构建完成后,应用程序的第三部分包括查看该赛道。有一个 tabControl,一个选项卡用于 2D 绘图,另一个选项卡用于 3D 视图。3D 视图使用 ShapGL 库,并且已经为 3D 赛道对象创建了一个从 SceneObject 继承的特殊类。Plots_Nogaro.jpg

3D_Nogaro.jpg

历史

  • 2008 年 11 月 2 日:初始发布
© . All rights reserved.