Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.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,我是一个使用画布的初学者,我需要在画布上制作形状 如何在画布上绘制菱形/平行四边形 大概是这样的: var rectangle = new Path2D(); rectangle.rect(0, 0, width, height); 我可以用这样的东西画矩形/正方形: var rectangle = new Path2D(); rectangle.rect(0, 0, width, height); 但我不知道如何画菱形/平行四边形 感谢所有能提供帮助的人。以笔直的方式从上到下拖动鼠标以绘

我是一个使用画布的初学者,我需要在画布上制作形状

如何在画布上绘制菱形/平行四边形

大概是这样的:

var rectangle = new Path2D();
rectangle.rect(0, 0, width, height);

我可以用这样的东西画矩形/正方形:

var rectangle = new Path2D();
rectangle.rect(0, 0, width, height);
但我不知道如何画菱形/平行四边形


感谢所有能提供帮助的人。

以笔直的方式从上到下拖动鼠标以绘制菱形。仅适用于一个浏览器,然后刷新浏览器并重试

let isDrawing=false;
设x=0;
设y=0;
var端点=[];
var startPoint=[];
常量元素=document.getElementById('drawFigure');
const ctx1=element.getContext('2d');
元素。addEventListener('mousedown',e=>{
x=e.offsetX;
y=e.offsetY;
isDrawing=true;
开始点推({
x:e.offsetX,
y:e.offsetY
});
});
元素addEventListener('mousemove',e=>{
如果(isDrawing==false){
x=e.offsetX;
y=e.offsetY;
控制台日志(“x”+x,“y”+y);
}
});
window.addEventListener('mouseup',e=>{
如果(isDrawing==真){
x=e.offsetX;
y=e.offsetY;
端点推送({
x:e.offsetX,
y:e.offsetY,
填充颜色:“蓝色”
});
抽绳();
isDrawing=false;
}
});
函数drawLine(){
ctx1.beginPath();
ctx1.moveTo(起始点[0].x,
起始点[0].y);
var half=endPoint[0]。y-startPoint[0]。y
变量x1=起始点[0]。x+half
变量y1=起始点[0]。y+1/2
ctx1.lineTo(x1,y1)
控制台日志(x1,y1);
ctx1.移动到(x1,y1)
ctx1.lineTo(端点[0].x,
端点[0].y);
ctx1.lineTo(起始点[0].x-half,y1);
ctx1.lineTo(起始点[0].x,
起始点[0].y);
ctx1.stroke();
}
//------------- 
var c=document.getElementById(“myCanvas”);
var ctx=c.getContext(“2d”);
ctx.beginPath();
ctx.moveTo(75,75);
ctx.lineTo(135,25);
ctx.lineTo(195,75);
ctx.lineTo(135125);
ctx.closePath();
ctx.stroke()
画布{
边框:2个点黑色;
宽度:460px;
高度:330px;
}

文件
硬冲程1/2

以笔直的方式从上到下拖动鼠标以绘制菱形。仅适用于一个浏览器,然后刷新浏览器并重试

let isDrawing=false;
设x=0;
设y=0;
var端点=[];
var startPoint=[];
常量元素=document.getElementById('drawFigure');
const ctx1=element.getContext('2d');
元素。addEventListener('mousedown',e=>{
x=e.offsetX;
y=e.offsetY;
isDrawing=true;
开始点推({
x:e.offsetX,
y:e.offsetY
});
});
元素addEventListener('mousemove',e=>{
如果(isDrawing==false){
x=e.offsetX;
y=e.offsetY;
控制台日志(“x”+x,“y”+y);
}
});
window.addEventListener('mouseup',e=>{
如果(isDrawing==真){
x=e.offsetX;
y=e.offsetY;
端点推送({
x:e.offsetX,
y:e.offsetY,
填充颜色:“蓝色”
});
抽绳();
isDrawing=false;
}
});
函数drawLine(){
ctx1.beginPath();
ctx1.moveTo(起始点[0].x,
起始点[0].y);
var half=endPoint[0]。y-startPoint[0]。y
变量x1=起始点[0]。x+half
变量y1=起始点[0]。y+1/2
ctx1.lineTo(x1,y1)
控制台日志(x1,y1);
ctx1.移动到(x1,y1)
ctx1.lineTo(端点[0].x,
端点[0].y);
ctx1.lineTo(起始点[0].x-half,y1);
ctx1.lineTo(起始点[0].x,
起始点[0].y);
ctx1.stroke();
}
//------------- 
var c=document.getElementById(“myCanvas”);
var ctx=c.getContext(“2d”);
ctx.beginPath();
ctx.moveTo(75,75);
ctx.lineTo(135,25);
ctx.lineTo(195,75);
ctx.lineTo(135125);
ctx.closePath();
ctx.stroke()
画布{
边框:2个点黑色;
宽度:460px;
高度:330px;
}

文件
硬冲程1/2

我不相信有一种内置的方法可以将所有形状都作为一个整体来绘制,但只需将四边绘制为直线应该非常简单。没有任何输入格式,就不可能给出答案。如何定义这些形状?按他们的四分?只需调用lineTo。通过宽度-高度和歪斜X和歪斜角度?要么你需要计算四个点,要么你使用上下文变换矩阵。我不相信有一种内置的方法可以把形状全部画成一个,但是把四边画成线应该很简单。没有任何输入格式,就不可能给出答案。如何定义这些形状?按他们的四分?只需调用lineTo。通过宽度-高度和歪斜X和歪斜角度?要么你需要计算四个点,要么你使用上下文转换矩阵。您可以随时发布您的文章,然后单击“编辑上述代码段”链接,添加任何必要的更改。我已将您的示例编辑到正在运行的代码段中。您可以随时发布文章,然后单击“编辑上述代码段”链接添加任何必要的更改