路线图绘画系统

本文介绍了一个使用p5.js开发的动态绘画系统,专注于绘制具有流动感的路线图,如疏散图和导航图。系统包括多种笔刷类型,如表示不同交通状况的线条,以及时间显示、颜色选择等功能。此外,作者探讨了该系统与传统绘画工具的异同,强调了其在方向性和视觉引导上的优势,并提出了广泛应用的可能性,如路线指示、疏散计划和动态场景描绘。
摘要由CSDN通过智能技术生成

一、前言
因为导航软件现在几乎人人都会用了,相信大家现在都已经不会迷路,但是还是难以避免会有问路的,会不会觉得难以描述或者并不形象呢?现在的每一栋大厦或者场所必定都会有安全疏散图相信大家都知道,但是会有多少人每次花心思先去看一看呢?想必现在开车的人最头疼的一件事就是找停车场吧,即使找到了停车场,找不到入口?还得绕一圈发现进到了最堵得地方有没有觉得好难受。我们能不能像下面的藏宝图一样设计出来路线图呢?
在这里插入图片描述

二、绘图软件简介
根据我们这次作业的要求:编写一个“绘画系统”,提供一系列的绘画材料给用户操作,以创作动态交互作品,也就是创作一个app,看起来比较像“画画工具”,再加上之前的问题,我的主题便定了下来,一个可以导航的绘图软件。
其主界面如下:
在这里插入图片描述
看起来十分的简洁,接下来我来介绍他所具有的功能:左边的白色区域是绘画的区域,右面是工具栏,工具栏的最下面首先是brush:笔刷的类型,具体的每种笔刷会在之后介绍,按键C可以清屏,↕按键可以换笔刷的类型,L/S按键用来保存和读取你的画(还未完善),在上面是一个表设置他的原因我会在之后解释,再上面是颜色盘,对应的是画笔和背景的颜色。

三、功能设计
1.钟表的设计:其实加入这个钟表的原因有很多,起因是我自己在设计绘画板的时候忘记了吃饭,就发现注意时间的重要性,就有了加入表的想法,主要是我考虑到用我的这个系统画这些设计图的时候可能都会很赶时间比如说想画一个找路的图,疏散图,找地点的图,有一个表在时刻的提醒着是非常不错的。
钟表源代码:

var cx=paintingWidth+80, cy=470;
var secondsRadius;
var minutesRadius;
var hoursRadius;
var clockDiameter;
function setup() {
  var clockradius = 50;
  secondsRadius = clockradius * 0.71;
  minutesRadius = clockradius * 0.60;
  hoursRadius = clockradius * 0.50;
  clockDiameter = clockradius * 1.7;
  function draw() {
   //表
  push();
noStroke();
  fill(244,122,158);
  ellipse(cx, cy, clockDiameter + 25, clockDiameter + 25);
  fill(237,34,93);
  ellipse(cx, cy, clockDiameter, clockDiameter);
  
  // 时间
  var s = map(second(), 0, 60, 0, TWO_PI) - HALF_PI;
  var m = map(minute() + norm(second(), 0, 60), 0, 60, 0, TWO_PI) - HALF_PI; 
  var h = map(hour() + norm(minute(), 0, 60), 0, 24, 0, TWO_PI * 2) - HALF_PI;

  // 表针
  stroke(255);
  strokeWeight(1);
  line(cx, cy, cx + cos(s) * secondsRadius, cy + sin(s) * secondsRadius);
  strokeWeight(2);
  line(cx, cy, cx + cos(m) * minutesRadius, cy + sin(m) * minutesRadius);
  strokeWeight(4);
  line(cx, cy, cx + cos(h) * hoursRadius, cy + sin(h) * hoursRadius);

  // 每分钟的点
  strokeWeight(2);
  beginShape(POINTS);
  for (var a = 0; a < 360; a+=6) 
  {
    var angle = radians(a);
    var x = cx + cos(angle) * secondsRadius;
    var y = cy + sin(angle) * secondsRadius;
    vertex(x, y);
  }
  endShape();
	pop();
}

2.颜色块的设计:我按照了我们经常用到的画图软件的调色板设计了这个,只是加入了三原色(红绿蓝)和二次色(青黄品红)和黑白。
颜色块的代码:

var R=0;G=0;B=0;
var r=255;g=255;b=255;
  //画笔颜色
  buttonW=Button(paintingWidth+20,20,255,255,255,30);
  buttonR=Button(paintingWidth+20,70,255,0,0,30);
  buttonG=Button(paintingWidth+20,120,0,255,0,30);
  buttonB=Button(paintingWidth+20,170,0,0,255,30);
  buttonQ=Button(paintingWidth+20,220,0,255,255,30);
  buttonF=Button(paintingWidth+20,270,255,0,255,30);
  buttonH=Button(paintingWidth+20,320,255,255,0,30);
  buttonBL=Button(paintingWidth+20,370,0,0,0,30); 
function Button(x,y,R,G,B,size)
{
  this.bx=x;
  this.by=y;
  var boxSize = 30;
  stroke(R,G,B); 
  fill(R,G,B);
  rect(bx, by, boxSize, boxSize);
}  
  //背景颜色
  buttonW2=Button(paintingWidth+110,20,255,255,255,30);
  buttonR2=Button(paintingWidth+110,70,255,0,0,30);
  buttonG2=Button(paintingWidth+110,120,0,255,0,30);
  buttonB2=Button(paintingWidth+110,170,0,0,255,30);
  buttonQ2=Button(paintingWidth+110,220,0,255,255,30);
  buttonF2=Button(paintingWidth+110,270,255,0,255,30);
  buttonH2=Button(paintingWidt
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值