基于jsp的像素着色

基于jsp的像素着色 一,用户界面 注意: 需要在Chrome浏览器上运行,使用IE等其他浏览器可能出现各种不兼容现象, 二,操作方法 在绘图区域点击鼠标

本文包含相关资料包-----> 点击直达获取<-------

基于jsp的像素着色

一、用户界面

注意: 需要在Chrome浏览器上运行,使用IE等其他浏览器可能出现各种不兼容现象。

二、操作方法

  • 在绘图区域点击鼠标,绘制多边形。在还差一条边没有绘制时,右键点击画布或者按下空格键可以自动封闭多边形。

  • 点击右上侧按钮可以选择目标多边形。选中后,点击下面按钮可以进行进一步的操作:

  • 清除选中状态: 取消对多边形的选择。
  • 添加内环: 点击后,紧接着绘制的下一个多边形将成为目标多边形的内环。
  • 选择裁剪对象: 点击该按钮后,要继续点击另一多边形对应的 按钮 。将进行裁剪操作,原多边形作为主多边形,后点击的将作为裁剪多边形。
  • 平移、旋转、缩放、翻转。
  • 着色。
  • 重置多边形: 清除当前所有多边形。

  • 部分操作可以用键盘代替:

操作 键盘方法
封闭多边形 space
平移 上下左右
旋转 shift+左右
缩放 shift+上下
翻转 alt+上下左右

三、效果展示

3.1 裁剪

3.2 着色

四、特色

  • 仅使用了setPixel函数。

  • 可以判断多边形合理性,避免内环画在外面、多边形自相交等状况。

  • 交互友好,可以轻松添加多边形并对其操作。

  • 允许存在多个多边形。

  • 手动实现了双缓冲绘制,刷新时只绘制发生变化的像素,大大节约时间。

五、算法概览

在这里列出程序用到的主要的函数。

功能 函数名 算法
画线 _lineTo Bresenham算法。
着色 colorPolygons 逐点判断方法。
求坐标是否在多边形内 isIn 将该点与多边形各个顶点连线,分别求内外环各个夹角的度数和。若在外环内、内环外,则为多边形内部
判断线段是否相交 isTwoLinesCross 先判断显然不相交的情况,再求向量叉积判断
判断多边形自相交 checkCross 枚举各边是否相交
求线段交点 crossPoint 先判断相交,再求两直线方程交点
封闭多边形 closePath 判断是否自相交; 将当前绘制的线段排序,并压进polygons数组; 添加按钮
对线段排序(顺逆时针) sortVertex 使用 Paul Bourke的方法 ,并区分内外环
求几何重心 getCenter 参照维基百科的公式,并非简单的求各个点坐标平均值: 此外,内环相当于负质量,应减去。
旋转 rotate 将选中的多边形的各个顶点相对于多边形重心的各个向量分别旋转,再加回重心
多边形边交点排序 sortCrossPoint 该函数在裁剪多边形中用到,目的是对主多边形的一条边与裁剪多边形的交点的排序。根据端点的顺序,对各个交点的横坐标做冒泡排序。
裁剪多边形 cutPolygon 使用Weiler-Atherton算法。先改变多边形数据结构,从边表转成顶点表。再求两个多边形的交点,并插入顶点表,对应的顶点索引关系存储在connect数组中。 若connect为空 则特殊处理。接下来从connect数组中选点开始算法,标记connect数组的元素。回到起始点后,将当前多边形push进结果数组,并寻找下一个未标记的connect,继续算法。最后,将顶点表转换回边表。产生的结果可能有多个多边形,它们将被作为不同的多边形依次被添加。

参考文献

  • 基于JSP的学生就业信息管理系统设计与实现(吉林大学·马骁)
  • 基于JSP技术的毕业生信息管理系统的设计与实现(吉林大学·孙佳帝)
  • 基于JSP的校园管理网站系统的设计与开发(电子科技大学·张志红)
  • 计算机文化基础网络课件(吉林大学·林凌)
  • 基于EPP的域名管理系统(山东大学·孟庆领)
  • 沈阳超高压局通信设备运行参数管理信息系统(大连理工大学·杨楠)
  • 基于云计算模式的社会服务管理信息化平台项目设计与建设(吉林大学·杨刚)
  • 基于JSP的艺术院校图书管理系统的设计与实现(西安电子科技大学·王擒龙)
  • 基于云计算模式的社会服务管理信息化平台项目设计与建设(吉林大学·杨刚)
  • 基于JSP平台的信息发布系统的设计与实现(北京工业大学·徐慧君)
  • 基于云计算模式的社会服务管理信息化平台项目设计与建设(吉林大学·杨刚)
  • 电子商务门户网站的研究与实现(大庆石油学院·戴庆)
  • 基于JSP平台的信息发布系统的设计与实现(北京工业大学·徐慧君)
  • 基于J2EE和MVC模式的Web应用研究(武汉理工大学·刘继华)
  • 基于云计算模式的社会服务管理信息化平台项目设计与建设(吉林大学·杨刚)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计客栈 ,原文地址:https://bishedaima.com/yuanma/35591.html

相关推荐

  • python数据分析

    python数据分析(9)——挖掘建模(4)时序模式 1, 时间序列算法 2, 时间序列的预处理 2,1平稳性检验 2,1,1 时序图检验 平稳的时序图序列值在一个常数附近随机波动
    2024年05月14日
    2 1 1
  • Python+MySQL用户加密存储验证系统

    Python+MySQL用户加密存储验证系统 Python 2,7 IDE Pycharm 5,0,3 PyMySQL 0
    2024年05月14日
    2 1 2
  • 基于JSP和MYSQL数据库实现的知识产权管理系统

    基于JSP和MYSQL数据库实现的知识产权管理系统 1 前言 1,1 主要功能 默认系统中,有三种角色,分别为:系统管理员,执法管理员,机构用户, 系统管理员功能:系统管理
    2024年05月14日
    8 1 1
  • 基于Springmvc+MyBatis+Spring+Bootstrap+EasyUI+Mysql的个人博客系统

    Blog-master 基于Springmvc+MyBatis+Spring+Bootstrap+EasyUI+Mysql的个人博客系统 参考文献 基于SSH框架的博客用户分享平台的设计与实现(河北工业大学·刘磊) 基于SSH框架的人力资源管理系统的设计与开发(电子科技大学·唐伟) 博客管理系统的设计与实现(吉林大学·赵岩) 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航) 基于MVC设计模式的博客系统的设计与实现(大连理工大学·侯林) 基于SSH框架的博客用户分享平台的设计与实现(河北工业大学·刘磊) 基于SSH框架模式的博客系统的设计与实现(西北师范大学·王刚成) 基于SSH2的轻博客系统的研究与实现(吉林大学·杨雪梅) 博客管理系统的设计与实现(吉林大学·赵岩) 基于OAuth2
    2024年05月14日
    4 1 1
  • 使用python+pygame开发的小游戏《嗷大喵快跑》

    使用 python+pygame 开发的小游戏《嗷大喵快跑》 效果图: 现在我们来分析一下制作流程: 游戏中一共有嗷大喵,恶龙
    2024年05月14日
    4 1 3
  • 基于SpringBoot框架的企业资产管理系统

    这是一套采用Java语言开发的🔥🔥SpringBoot企业资产管理系统源代码🔥🔥,项目中融入了Vue技术框架,开发工具为Idea或Eclipse,该系统适用于作为毕业设计或课程设计的任务
    2024年05月23日
    18 1 3
  • 多功能美颜 Web 应用

    多功能美颜 Web 应用 第一部分引言 一,编写目的 编写本说明书的目的是为了准确阐述项目概要设计结构,本概要设计说明的作者是【巧倩美颜】项目组
    2024年05月14日
    6 1 2
  • 基于SpringBoot框架的校园商铺管理系统

    这是一套采用Java语言,基于SpringBoot框架构建的校园商店管理系统的源代码,系统设计与实现充分利用了SpringBoot和Vue技术,开发工具为Idea或Eclipse
    2024年05月23日
    22 1 5
  • 基于SpringBoot框架的相亲网站

    这是一份采用🔥🔥SpringBoot为核心的婚恋交友平台源代码🔥🔥,主要编程语言为Java,并结合了SpringBoot和vue技术栈,开发工具为Idea或Eclipse
    2024年05月23日
    11 1 1
  • 在线兼职网

    这是一个🔥🔥基于SpringBoot框架的在线兼职网设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    7 1 2

发表回复

登录后才能评论