Giter Site home page Giter Site logo

fltk-map's Introduction

fltk_map

本项目是使用 fltk GUI 库, 以 C++ 语言编写的地图查看程序.

程序的主要功能包括地图查看, 区域创建和管理, 面积计算与显示等等. 欢迎下载试用本项目, 以及对本项目提出建议 / 提交 issue 和 pr .

能力所限, 您可能在本项目中遇见包括但不限于以下情形: 不优雅的实现方式 / 未完善的功能 / 混乱的逻辑 / 反常的交互 / 胡言乱语的注释 / 漫天飞舞的Bug / 神志不清的作者, 敬请谅解.

于是, 这里是留给可能由于我的代码遭受精神创伤的你的补偿 (bushi

  /l、 
(゚、 。 7
  l、 ~ヽ
  じしf_, )ノ

猫猫可爱捏~

功能预览 / 说明

默认界面

本项目主要实现了以下功能:

创建和编辑区域

创建区域

  • 默认即处于编辑区域的状态, 通过点击在地图对应位置添加顶点.
  • 通过右下角 Confirm / New 按钮确认或新建区域, 通过 Undo 按钮撤销上一个添加的点.
  • 编辑状态下实时显示区域面积 (若区域合法)
  • 在输入框中输入文本以修改区域名称, 留空以使用默认名称.
查看多个区域

多个区域

更多区域

  • 程序将按照创建顺序显示多个区域的面积和名称.
  • 根据区域数目, 自动生成滚动条.
  • 屏幕外的区域将自动显示方位指示器.
缩放 / 移动地图

缩放和移动

  • 通过鼠标拖动和滚轮对地图进行缩放.
  • 程序将自动选取并下载适合的分辨率/详细程度进行显示.
管理已创建的区域

隐藏区域

中置区域

  • 点击区域显示中的 Show / Hide 按钮以切换显示状态.
  • 点击 Focus 将视角移动至区域中心.

运行说明

Visual Studio (推荐)

Clone 本存储库, 然后使用 Visual Studio 打开 fltk_map.sln .

建议使用 vcpkg 管理和安装依赖项 fltklibx11 .

WSL2 (Ubuntu-20.04)

使用 apt-get 安装 libfltk1.3-devlibx11-dev

Clone 本存储库, 然后在存储库目录下使用如下命令编译:

g++ -std=c++2a -g ./map_test/map_main.cpp -lfltk -lfltk_images -lX11 -pthread -o map_main

Msys2

WSL2 (Ubuntu-20.04) 章节类似, Clone 本存储库然后使用如下命令编译:

g++ -std=c++20 -g .\map_test\map_main.cpp -lfltk -lfltk_images -lwsock32 -lws2_32 -lgdi32 -o map_main.exe

Vscode

本段是针对 Vscode 的额外说明. 首先您应当按照上方 WSL2 (Ubuntu-20.04) / Msys2 章节所述内容配置依赖项与下载对应文件, 之后您可以参考本项目目录 res/tasks/*.json 配置 Vscode 自动生成的 ./map_test/.vscode/tasks.json 文件.

tasks.json 应当会在运行一次 map_test/map_main.cpp 后自动生成. 请主要参考并修改 "args" 参数, 因为其它参数 (包括编译器路径与命令) 取决于个人的环境配置而有所不同.

fltk-map's People

Contributors

zzh-qwq avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.