交互式(可点击)地图

马丁·皮尔斯(Maarten Peels)

我有一个露营地图,就是这样:

在此处输入图片说明

现在,在这张地图上,有很多露营地。并且所有地方(黄色,粉红色和黄色条纹)都必须是可点击的。

所以我的问题是,我将如何实现这一目标?我在考虑使用SVG或其他东西。这是一个好的解决方案吗?

战车

基本思想:创建一个颜色图以查找用户单击的位置。

要创建该颜色图,请从原始图开始,用空位图覆盖它,并编写一个小的工具应用程序来帮助您:

  • 它应该让您为每个站点点用特殊颜色绘制一个实心圆
  • 理想情况下,这些颜色应允许您重新构造场所的数量和类型
  • 每次单击时,应准备下一种颜色
  • 您不需要太精确地匹配位置,但是您可以使用绘画程序来改善颜色图;将原始地图放在其下的一层中,并使用吸管工具获得正确的颜色,然后将位置绘制得更好一些
  • 因为很多地方都有连续的数字
    • 每次点击计数
    • 使用输入框设置新的起始数字

对于实际应用,您应该

  • 将颜色图保存在内存中
  • 使用MouseClickPictureBox,以获得地方的坐标
  • 用缩放系数乘以(或除以)
  • 使用GetPixel彩色图上得到的颜色,然后
  • 提取地号码。

一个ARGB颜色有3个颜色字节;两个就足够了,而对于彩色编码的地方,您仍然会有一个字节。

缩放系数为1f * PictureBox.clientSize.Width / PictureBox.Image.Width

为了获得最佳的用户体验,我将在颜色变化时使用PictureBox.MouseMove来查找颜色表中的位置并提供反馈,包括设置和清除mouse cursorbetwennHand以及Default位置可单击(即在颜色图上具有不透明的颜色)。 。

为了避免伪影,颜色图必须存储为PNG,而不是JPG

如果您想获得有关地点的更多信息,则可以(并且应该)创建一个Place类并按住,Dictionary<Color, Place>PlaceColor进行查找

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章