如何限制Canvas多边形的拖动范围 10C

就是使其不超出画布,

0

5个回答

一般都是

if (x < 0) x = 0;
if (y < 0) y = 0;
if (x > canvas.width) x = canvas.width;
if (y > canvas.height) y = canvas.height;

1
ws_tan
一只努力飞翔的鱼 这个不要减去多边形的宽度和高度吗?
大约一年之前 回复
ws_tan
一只努力飞翔的鱼 if (x > canvas.width) x = canvas.width; if (y > canvas.height) y = canvas.height;
大约一年之前 回复

可以固定X/Y值范围,如 X < 4 , X =4

0

可以通过一些函数比如 x1.5y y>15 y<100 这样就形成了一个四边形,如果多边形就将函数改复杂点,其实就是一个高中数学题

0

怎么有些符号显示不出来,x大于2y,x小于1.5y

0

多边形中x最大的点的x不能超过canvas.width,x最小的点的x不能小于0,y不能超过canvas.height,不能小于0.

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
限制控件的拖动范围
RT,前面看到妖哥以前的回复 rn用SetCaptureControl(NULL);限制了光标 rn请问怎么限制控件拖动范围 不需要限制光标
图片的拖动受范围限制,如何解决
图片在固定大小的矩形框里显示,对图片放大后,可以进行拖动、或缩小,但是不能让矩形框的底板露出来rnrn(用矩阵进行变换,缩放是等倍的rnrn请问,有什么简单的方法吗?rnrn比如下面这段代码,怎样加上拖放的范围控制呢?(图片放大到一定程度后把Panel全部覆盖,但是在移动的过程中不能把图片的边界一处JPanel的边界)rn[code=Java][/code]rnrnpackage map;rnrnimport java.awt.BorderLayout;rnimport java.awt.Color;rnimport java.awt.Graphics;rnimport java.awt.Graphics2D;rnimport java.awt.Point;rnimport java.awt.Toolkit;rnimport java.awt.event.ActionEvent;rnimport java.awt.event.ActionListener;rnimport java.awt.event.MouseAdapter;rnimport java.awt.event.MouseEvent;rnimport java.awt.event.MouseWheelEvent;rnimport java.awt.event.MouseWheelListener;rnrnimport javax.swing.ImageIcon;rnimport javax.swing.JButton;rnimport javax.swing.JFrame;rnimport javax.swing.JPanel;rnimport javax.swing.border.EmptyBorder;rnrnpublic class Layer extends JPanelrn private static final long serialVersionUID = 1L;rn ImageIcon img = new ImageIcon(Toolkit.getDefaultToolkit().createImage("/root/桌面/2000.jpg"));rn rn //以下两个参数描述图层的位置rn private int x = 0;//rn private int y = 0;rn //以下两个参数描述图层的大小rn private int width = 300;rn private int height = 300;rn rn //以下两个参数描述图层的每次放大或缩小的尺寸rn private int dx = 50;rn private int dy = 50;rn rn public Layer()rn this.addMouseWheelListener(new MouseWheelListener() rn rn public void mouseWheelMoved(MouseWheelEvent e) rn if(e.getWheelRotation() < 0)rn zoom();rn elsern reduce();rn rn rn rn );rn rn MouseAdapter ma = new MouseAdapter()rnrn @Overridern public void mouseClicked(MouseEvent e) rn zoom();rn rnrnrn boolean moveEnable = false;rn Point point1 = null;rn Point point2 = null;rn rn @Overridern public void mousePressed(MouseEvent e) rn moveEnable = true;rn point1 = e.getPoint();rn rnrn @Overridern public void mouseReleased(MouseEvent e) rn moveEnable = false; rn point1 = null;rn point2 = null;rn rnrn @Overridern public void mouseMoved(MouseEvent e) rn //System.out.println("move");rn rn @Overridern public void mouseDragged(MouseEvent e) rn System.out.println("dragged");rn point2 = e.getPoint();rn if(moveEnable)rn if(point1 != null && point2 != null)rn int dx = point2.x - point1.x;rn int dy = point2.y - point1.y;rn x = x + dx;rn y = y + dy;rn //Layer.this.setLocation(_x, _y);rn point1 = point2;rn repaint();rn rn rn rn ;rn rn this.addMouseMotionListener(ma);rn this.addMouseListener(ma);rn rn @Overridern public void paint(Graphics g) rn //所有的图层变更都在此方法内响应rn super.paint(g);rn rn Graphics2D g2 = (Graphics2D) g;rn g2.clearRect(0, 0, getBounds().width, getBounds().height);rn g2.drawImage(img.getImage(), x, y, width, height, null);rn rn rn rn /**rn * 缩小rn */rn public void reduce()rn if(width > 2*dx && height > 2*dy)rn x += dx;rn y += dy;rn width -= 2 * dx;rn height -= 2 * dy;rn super.repaint();rn rn rn rn rn /**rn * 放大rn */rn public void zoom()rn x -= dx;rn y -= dy;rn width += 2 * dx;rn height += 2 * dy;rn super.repaint();rn rn rn /**rn * 测试方法rn * @param argsrn */rn public static void main(String[] args) rn // TODO Auto-generated method stubrn JFrame f = new JFrame();rn f.setLayout(new BorderLayout());rn f.setSize(500, 500);rn rn final Layer layer = new Layer();rn layer.setBorder(new EmptyBorder(2,2,2,2));rn layer.setOpaque(true);rn layer.setBackground(Color.BLUE);rn layer.setSize(400, 400);rn f.getContentPane().add(layer);rn rnrn JButton btn1 = new JButton("放大");rn btn1.addActionListener(new ActionListener() rn rn public void actionPerformed(ActionEvent e) rn layer.zoom();rn rn );rn rn JButton btn2 = new JButton("缩小");rn btn2.addActionListener(new ActionListener() rn rn public void actionPerformed(ActionEvent e) rn layer.reduce();rn rn );rn f.add(btn1,BorderLayout.NORTH);rn f.add(btn2,BorderLayout.SOUTH);rn rn f.setVisible(true);rn rnrnrn
openlayer3如何限制地图的拖动范围
如题,就是限制它不可以拖出某个extent的范围
as3.0 限制图片拖动范围
as3.0 限制图片拖动范围代码 ,可自行设置更改
leaflet限制地图拖动范围
工作中,有的地图服务,整体范围不是很大,导致访问服务,漫游拖动时,有把地图拖到地图范围外的现象。 为了方便用户交互体验,对地图服务的拖拽范围进行限制。 地图api: leaflet version1.0.3  地图服务:arcgis10.2 主要代码如下: 引入leaflet js、css var corner1 = L.latLng(latitude
怎么限制Splitter的拖动范围
就像BCB的Object Inspecter,将Splitter的拖动范围限制在一个范围内
如何控制拖动的范围?
rn我在Flash中施动一个影片剪辑时,想控制其范围,即限定在如(3,90)-->(40,200)这样一个矩形区域内,当到达左边界时就不再往左了。请教各位,如何做?
鼠标拖动图片限制范围问题(在线)
rnrn rn 鼠标拖动多张图片rn rn rn rn rn rn rn rn rn rn rn rn rn rn rn rnrnrnrnrnwz_dragdrop.js在 http://www.walterzorn.com/scripts/wz_dragdrop.zip 有下载rn问题是:为什么只有b图片能在DIV(frame)里被拖动,而a图片则不受限制的在整个页面上拖动?要如何让a图片和b图片一样也受到frame的限制?
09_应用练习1_限制拖动的范围
如果你没有Android基础, 它是你的首选:从搭建环境开始,逐步讲解四大组件、用户界面、数据存储等核心知识;n如果你学过Android基础, 助你如虎添翼:深入讲解Android中的消息机制、事件机制、视图生命周期等技术;n如果你缺少Andorid实战, 帮你突破瓶颈:我们每天都会做一到三个应用实战练习,都源自真实项目中的功能模块;
怎样限制拆分条的拖动范围?
怎样限制拆分条的拖动范围?
Splitter怎么限制它的拖动范围?
比如相左不能小于100,向右不能大于(Width-200)
如何限制鼠标移动范围
用mapwindowpoints限制后,只要移动窗体就能破解rn要如何才能继续限制?rn
图片的缩放、拖动受范围限制,如何解决
图片在固定大小的矩形框里显示,对图片放大后,可以进行拖动、或缩小,但是不能让矩形框的底板露出来rnrn(用矩阵进行变换,缩放是等倍的)rnrn请问,有什么简单的方法吗?
CANVAS绘制多边形
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
Canvas多边形绘制
javascript实现任意角度正多边形绘制canvas图形源码.
如何限制窗口的移动范围
子窗口的OnLButtonDown里面调用SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y))拖动窗口,rn如何限制子窗口完全在父窗口里面?rnrn现在只能是鼠标限制在父窗口里面,所以拖动时有部分子窗口可以移出父窗口。
如何限制UI的移动范围
1.先获取到UI的RectTransform,public RectTransform _rectTransform; 2.选择你要限制的方向和大小,x. y z 3.float x=Mathf.Clamp(_rectTransform.localPosition.x,-400,390);后面的数字是你要限制的范围,x。y。z都是这样写 4最后在加上_rectTransform.locaPos...
如何限制宏的作用范围?
想把宏的作用限制在一个函数里,使宏对其他函数不可见。rn
如何限制分配内存的地址范围???
比如说,用kmalloc分配32M以内的地址范围!谢谢!
如何限制QLineEdit的小数范围
如题,需要限制一个QLineEdit的输入的小数范围,但是范围是动态的,也就是说这个时候可能是7.7-8.8,下一刻是另外一个范围了,但是每次都能取到一个min和max,用过QDoubleValidator但是限制不了上下限,或是感觉,完全没用?
如何限制函数模板的类型范围
如题,rn我想限制 template < class T > 中T 的范围只能是 int 和 long 这两种类型,该如何写?
如何限制控件拖动的方向
我做了一个线的自定义控件,我想实现在窗口中拖动时,横线只能上下拖动,纵线只能左右拖动,请问如何实现?请诸位高手帮帮忙!!!
canvas捕捉事件的范围??
[img=C:\Users\dapeng\Pictures\未命名.bmp][/img]rn这个为什么可以捕捉到canvas(黑色部分)类 以外的窗体内的鼠标事件???
限制百度地图拖动范围限制,当超如范围时自动返回
限制百度地图拖动范围限制,当超如范围时自动返回 背景 最近利用百度离线地图加载世界地图,但发现下载的区域只是世界地图一块,当拖动地图范围超过想要的范围时,就会出现背景块为白色; 如图 解决思路1:百度api开发小案例中给出的方案 &amp;lt;script type=&quot;text/javascript&quot;&amp;gt; layer.msg('将地图显示范围设定在指定区域,地图拖出该区域后会重...
canvas绘制图形——直线、多边形、七巧板
前言 canvas 是 html5 中的一个新元素,主要用于图形的绘制,通过 JavaScript 来控制。&amp;lt;canvas&amp;gt; 标签定义一个图形容器,也可以叫做画布,通过 js 脚本可以绘制出各种各样的图像。 创建canvas 创建 canvas 只需要添加 canvas 标签就可以了,在创建时,除 id 外一般还会定制画布尺寸(width height)。定义画布尺寸不建议使用 css...
canvas——js画多边形方法
代码如下: var aa=document.getElementById("aa").getContext("2d"); aa.shadowBlur=6; aa.shadowColor="gray"; aa.shadowOffsetX=7; aa.shadowOffsetY=5; function createStar(cont
canvas 植物大战僵尸——背景图片的拖动
1.创建背景图片 function Map() { //地图的大小 var mapW = 1400; var mapH = 600; //地图的位置 var mapLeft = 0; var mapTop = 0; //创建地图图片 var map; //X轴移动的距离 var disX; this.ini...
Flex在canvas里面拖动
各位前辈好,我刚接触FLEX,现在做一个图片的排序rn我是把图片放到canvas容器中。因为图片比较多。出现了scrollbar.rn我想在图片拖动到最下方的时候scrollbar能自动下移。请问这个怎么实现。多谢了
css框选范围拖动
css框选范围拖动
控制图片拖动范围
我现在图片在整个浏览器进行拖动的,有什么办法可以控制图片拖动的范围。rn最好是像个容器,图片只能在里面拖动。解决了,加分
openlayer拖动范围设定
var mapOptions = { projection : new OpenLayers.Projection('EPSG:4326'), maxExtent : new OpenLayers.Bounds(121.95669802850942,37.302124678674154,122.73295650645256,37.63564806886632), // maxExtent
实现拖动范围的难题
用startdrag拖动mc,mc中是一个不规则多边形,现在要限制它在一个范围内拖动,难点在于这个MC是可以由用户旋转的,这样一来,定位就不准了,比如拖出左上角时就可能出去一点,或者回来的太多,因为限制是以注册点为准的rnrn如果用另一种方法,用getRect取得rect判断,也会在旋转后包括进过多的空白,仍然不准。rnrn各位帮忙出出主意,真的被难住了
Wp Canvas拖动问题
当鼠标点击canvas可以进行拖动,我现在是想要禁止鼠标拖动。要怎么做[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/19.gif][/img]
JS实现可拖动的DIV效果并限制范围区域
利用JS实现可拖动的DIV效果,在原有基础上增加的限制在一定区域内的效果。方便,易用。可以很方便地移动到您的工程里面
WEBGIS实现限制地图拖动范围及缩放比例及extent()参数说明
项目要求:使用图片覆盖在地图 根据经纬度确定图片真实地理位置 使用切图工具(MapTiler)对图片进行瓦片化 然后显示在地图。 问题描述:图片覆盖到地图后可以随意拖动和缩放,影响用户体验。 解决方法: openlayers实现瓦片切图覆盖地图及设置拖动范围和缩放比例: //地图拖拽经纬度(稍后会说) var mapPosition=ol.proj.transformExtent([经度1,纬度...
ClipCursor 限制鼠标范围
ClipCursor 限制鼠标范围 ClipCursor 限制鼠标范围
TextBox 数字,范围限制
直接上代码 /// &amp;lt;summary&amp;gt; /// 文本框文本输入事件 /// &amp;lt;/summary&amp;gt; private void txt_PreviewTextInput(object sender, TextCompositionEventArgs e) { Regex reg...
怪兽移动范围的限制
<span style="color:#333333;">微信小游戏是一种基于微信平台开发,不需要下载安装即可使用的全新游戏应用,体现了“用完即走”的理念,充分节省用户的手机空间。小游戏无论是开发以及使用都相当轻便快捷,同时基于微信的社交属性让小游戏具备较强的社交传播力,用户可以和朋友一起享受游戏的乐趣。期待您的加入一起构建小游戏的生态</span>
easyui限制日期范围
今天在使用easyui的日期控件做指定范围的日期选择的时候,应客户的要求只能选择当前3天内的日期,这个功能不是很难,但是要是使用js来实现,那就要自己写js代码来判断,当然还可以在后台通过java来做,但这不是我要得效果,我要得效果是在控件上就锁定只能有特定要求的日期可以选择。这样的功能也是今天要实现的,其实已经实现了,在此记录一下。 1.先看一下效果 要实现效果前提是要引入easyui和...
Windows下限制鼠标范围
pro : LIBS += -luser32 #include 具体代码: RECT mainWinRect;  mainWinRect.left = (LONG)w.geometry().left(); mainWinRect.right = (LONG)w.geometry().right(); mainWinRect.top = (L
相关热词 c#异步发送kafka c#窗体编号 c# 操作二进制文件 c# 反射 机制 c#线程 窗体失去响应 c#角度转弧度 c# 解析gps数据 c# vs设置 语法版本 c# json含回车 c#多线程demo