Giter Site home page Giter Site logo

homework-polygon-clipping's Introduction

计算机图形学——多边形裁剪作业

运行

首先需要安装Rust语言的开发环境:https://www.rust-lang.org/zh-CN/tools/install

cargo run

第一次运行时会下载依赖,可能需要科学上网,配置cargo使用代理。

代码说明

全在src/main.rs里呢。
现在懒得写了,如果有看不懂的地方建议提issue或发邮件

交互方式

  • 窗口的标题栏是程序向用户提示信息的地方,请您留意标题栏中给出的提示。
  • 进入程序后,首先即可绘制主多边形。
    • 鼠标左键点击即可选择第一个点(因为没有构成线段,第一个点不会画出),然后再选择第二个点,此时可以看到连出了一条线。
    • 继续不停点击选点,直到选好最后一个点后,鼠标右键点击即可使多边形闭合。
    • 注意:画多边形时必须遵循外环逆时针、内环顺时针的规则!
      • 为了方便,在每次点击鼠标右键使得回路闭合后,都会提示您您刚刚画的回路是逆时针还是顺时针的。
      • 如果您不慎画错方向,可按Backspace键清空输入。
  • 主多边形绘制完成(包括绘制完外环和所有的内环)后,按回车键进入裁剪多边形绘制模式。
    • 具体的绘制方法与绘制主多边形时相同。
  • 主多边形绘制完成(包括绘制完外环和所有的内环)后,按回车键即可查看结果。
    • 结果颜色显示说明:绿色:主多边形,蓝色:裁剪多边形,红色:裁剪结果
  • 再次按回车键,屏幕将被清空,回到主多边形绘制模式,可再次绘制下一组输入。
  • 程序实现了丰富的对异常和错误输入的处理
    • 例如每条回路在闭合前必须保证已有三个点,后画的线不能与先画的线相交(否则无法良定义多边形),等等
    • 错误信息和恢复方法将会在标题栏给出。
    • 如果您不慎画错,可以通过Backspace键清空输入。

最后放几张图

License

The MIT License (MIT)
Copyright (c) 2021 Starrah
See full text at https://choosealicense.com/licenses/mit/

homework-polygon-clipping's People

Contributors

starrah avatar

Stargazers

 avatar  avatar

Watchers

 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.