Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何按起点和终点绘制矩形?_Javascript_Html_Canvas - Fatal编程技术网

Javascript 如何按起点和终点绘制矩形?

Javascript 如何按起点和终点绘制矩形?,javascript,html,canvas,Javascript,Html,Canvas,现在,我可以用宽度和高度的起点画一个矩形 context.strokeStyle = "red"; context.beginPath(); context.rect(startX, startY, width, height); context.stroke(); 我的问题是,我可以用,startX,startY,EndX,EndY来画图吗?只需编写自己的函数来为您绘制矩形。如果有两个点(x1,y1)和(x2,y2),那么宽度是x sox2-x1的差值,高度是y soy2-y1的差值 使用此

现在,我可以用宽度和高度的起点画一个矩形

context.strokeStyle = "red";
context.beginPath();
context.rect(startX, startY, width, height);
context.stroke();

我的问题是,我可以用,startX,startY,EndX,EndY来画图吗?

只需编写自己的函数来为您绘制矩形。如果有两个点
(x1,y1)
(x2,y2)
,那么宽度是x so
x2-x1
的差值,高度是y so
y2-y1
的差值

使用此函数,您的函数可能类似于:

function drawRect(x1, y1, x2, y2){
    context.beginPath();
    context.rect(x1, y1, x2 - x1, y2 - y1);
    context.stroke();
}
或者,如果您不想使用函数,只需执行以下操作:

context.rect(x1, y1, x2 - x1, y2 - y1)

试试这个。希望这有帮助

func rectFromStartAndEnd(_ startPoint:CGPoint, endPoint: CGPoint) -> CGRect
{
  var  top, left, bottom, right: CGFloat;
  top = min(startPoint.y, endPoint.y)
  bottom = max(startPoint.y, endPoint.y)

  left = min(startPoint.x, endPoint.x)
  right = max(startPoint.x, endPoint.x)

  let result = CGRect(x: left, y: top, width: right-left, height: bottom-top)
  return result
}

你是什么意思?所以我可以直接使用rect(startX,startY,endX,endY)在画布上画一个矩形?不,当然不能,因为rect方法不是那样工作的。但是你可以很容易地编写自己的函数来获取这些值并计算调用rect所需的值。你的意思是像画4条线并把它们放在一起吗?还是没有理解要点,我真的很抱歉。你们能给我看一下密码吗?对不起。这真的是一个简单的数学。我现在真的需要一杯咖啡。