Ê×Ò³ > ½Ì³Ì > canvasʵÏÖÊÖ¶¯»æÖƾØÐÎ

canvasʵÏÖÊÖ¶¯»æÖƾØÐÎ

ʱ¼ä£º2024-08-15¡¡|¡¡À´Ô´£º¡¡|¡¡ÔĶÁ£º170

»°Ì⣺ a VA v S C

¿ª³¡°× ËäÈ»ÔÚʵ¼ÊµÄ¿ª·¢ÖÐÎÒÃǺÜÉÙÈ¥»æÖÆÁ÷³Ìͼ ¾ÍËãÐèÒª£¬ÎÒÃÇÒ²»áͨ¹ýµÚ3·½²å¼þȥʵÏÖ ÏÂÃæÎÒÃÇÀ´¼òµ¥ÊµÏÖÁ÷³ÌͼÖкÜСµÄÒ»²¿·Ö ÊÖ¶¯»æÖƾØÐÎ »æÖÆÒ»¸ö¾ØÐεÄ˼· ÎÒÃÇÕâÀï»æÖƾØÐÎ »áʹÓõ½canvas.strokeRect(x,y, w, h)·½·¨»æÖÆÒ»¸öÃè±ß¾ØÐÎ x:¾ØÐÎÆðµãµÄ x Öá×ø±ê¡£ y:

¿ª³¡°×

ËäÈ»ÔÚʵ¼ÊµÄ¿ª·¢ÖÐÎÒÃǺÜÉÙÈ¥»æÖÆÁ÷³Ìͼ
¾ÍËãÐèÒª£¬ÎÒÃÇÒ²»áͨ¹ýµÚ3·½²å¼þȥʵÏÖ
ÏÂÃæÎÒÃÇÀ´¼òµ¥ÊµÏÖÁ÷³ÌͼÖкÜСµÄÒ»²¿·Ö
ÊÖ¶¯»æÖƾØÐÎ

»æÖÆÒ»¸ö¾ØÐεÄ˼·

ÎÒÃÇÕâÀï»æÖƾØÐÎ
»áʹÓõ½canvas.strokeRect(x,y, w, h)·½·¨»æÖÆÒ»¸öÃè±ß¾ØÐÎ
x:¾ØÐÎÆðµãµÄ x Öá×ø±ê¡£
y:¾ØÐÎÆðµãµÄ y Öá×ø±ê¡£
width:¾ØÐεĿí¶È¡£ÕýÖµÔÚÓұߣ¬¸ºÖµÔÚ×ó±ß¡£
height:¾ØÐεĸ߶ȡ£ÕýֵϽµ£¬¸ºÖµÉÏÉý¡£
×¢ÒâÒ»ÏÂw,hÕâÁ½¸ö²ÎÊýµÄÕýÖ±ºÍ¸ºÖµ¡£
Èç¹ûw,hÊǸºÊý£¬»á³öÏÖÁË2¸öб×ŶԳƵľØÐÎ

canvasʵÏÖÊÖ¶¯»æÖƾØÐÎ

»æÖÆÒ»¸ö¾²Ì¬¾ØÐÎ




  
  
  Document
  


  



canvasʵÏÖÊÖ¶¯»æÖƾØÐÎ

�ֶ����ƾ��εĻ���˼·

ͨ����������ʵ���˾�̬���ƾ��Ρ�
���������Ҫ�ֶ���һ������,��Ҫʵ�����¼�������
1.��canvasע����갴���¼�,�ڰ��µ�ʱ���¼���ε���ʼ����(x,y)
���ͬʱ������Ҫ�ڰ���ʱע������ƶ��¼���̧���¼���
2.������ƶ���ʱ��ͨ������õ����εĿ��͸ߡ�
������εĿ��Ⱥ͸߶�ʱ������Ҫʹ�þ���ֵ���м��㡣
������������ƾ���
3.�����̧��ʱ���Ƴ�֮ǰע�������ƶ��¼���̧���¼�

�ֶ����ƾ���


canvasʵÏÖÊÖ¶¯»æÖƾØÐÎ
canvasʵÏÖÊÖ¶¯»æÖƾØÐÎ

����������ֶ����·��

ͨ����������ͼƬ��������Ȼ�����ֶ����Ƴ��˾��Ρ�
���dz������ظ���·����
�����ȷ���һ�³����ظ�·����ԭ��
������ÿ���ƶ��Ĺ����У�������ƾ��Ρ�
ֻҪ�����ڻ���ǰ����վ����Dz��ǾͿ��Խ���������
����������һ��

�ڻ�֮ǰ��������·��

function drawRect(x1,y1,x2,y2){
  // �ڼ�����εĿ���ʱ��������Ҫʹ�þ���ֵ�����м���
  // ��ʱ�˿��ƶ��������ȥ������µ�������Ǿ��εĿ��͸�
  let rectWidth = Math.abs(x2-x1)
  let rectHeight = Math.abs(y2-y1)
  // �洢���ε�������Ϣ
  rectArr = [x1,y1,rectWidth,rectHeight]
  // �ڻ��ƾ���ǰ�����ǽ�������գ�Ȼ���ڻ��ƣ��Ͳ�����ֶ����·����
  ctx.clearRect(0,0,  canvasEle.width, canvasEle.height)
  // ���»��ƾ���
  ctx.strokeRect(...rectArr)
}

canvasʵÏÖÊÖ¶¯»æÖƾØÐÎ

���ǵ�С��鷢�������ˣ�

��Щ���ǵ�С��鷢��:
�������ʼ�������½�,�յ������Ͻǡ�
��:�û���(900, 1000)�϶���(50, 50)�������
���������ķ�����ƾ��Σ��Dz��ǻ���������أ�
ȷʵ��������⡣
��ʱ���Ƶľ��β����������ǵķ�����л��ơ��뿴�����ͼ
��δ�����������أ�
canvasʵÏÖÊÖ¶¯»æÖƾØÐÎ

���������dz� canvas.rect

canvas.rect(x,y,w,h)�÷�������һ������·��
x:�������� x �����ꡣ
y:�������� y �����ꡣ
width:���εĿ��ȡ���ֵ���ұߣ���ֵ����ߡ�
height:���εĸ߶ȡ���ֵ�½�����ֵ������
��������Ǵ���һ������·����������·��������ֱ�ӻ����ڻ����ϡ�
��Ҫ����stroke()��fill()������ʾ�ڻ����ϡ�

ʹ��canvas.rect ���ƾ���·��

function drawRect(x1,y1,x2,y2){
  let rectWidth = Math.abs(x2-x1)
  let rectHeight = Math.abs(y2-y1)
  // ����֮ǰ�����֮ǰʵʱ�ƶ������Ķ���ľ���·��
  ctx.clearRect(0,0,  canvasEle.width, canvasEle.height)
  // ��ʼ����
  ctx.beginPath();  
  // ����·������
  ctx.rect(Math.min(x1, x2), Math.min(y1, y2), rectWidth, rectHeight);  
  // ������״��������
  ctx.stroke(); 
}

canvasʵÏÖÊÖ¶¯»æÖƾØÐÎ

canvas.strokeRect��canvas.rect����ͬ

����1������: canvas.strokeRect:���Ƶ��DZ߿�canvas.rect�������ε�·��(�������������ھ�����)
����2��ʱ��: canvas.strokeRect���������ơ�canvas.rect�����������ƣ���Ҫ����stroke()��fill()���ܻ���
��ͬ�㣺
1.���ǻ��ƾ���
2.���ܵIJ�����ͬ
3.����ͨ��strokeStyle(��ɫ)��lineWidth(�ߵĴ�ϸ)����������ʽ

�������ƶ������

function drawRect(x1,y1,x2,y2){
  let rectWidth = Math.abs(x2-x1)
  let rectHeight = Math.abs(y2-y1)
  let endX = Math.min(x1, x2)
  let endY = Math.min(y1, y2)
  // ����֮ǰ�����֮ǰʵʱ�ƶ������Ķ���ľ���·��
  ctx.clearRect(0,0,  canvasEle.width, canvasEle.height)
  // ����֮ǰ��Щ�洢�� beforeRectArr �����еľ���
  allRectInfoArr = [endX, endY, rectWidth, rectHeight]
  ctx.clearRect(0,0,  canvasEle.width, canvasEle.height)
  beforeRectArr.forEach(element => {
    ctx.beginPath(); 
    ctx.strokeRect(...element)
    ctx.stroke();
  });
  
  // ��ʼ����·��
  ctx.beginPath(); 
  // ���Ʊ��εľ���·��
  ctx.rect(...allRectInfoArr); 
  // ��ʼ������
  ctx.stroke(); 
}
// ���������̧���ʱ��Ҫ�Ƴ�֮ǰע���ƶ��¼���̧���¼�
function canvasMouseUpHandler(){
  savaBeforeRect()
  canvasEle.removeEventListener('mousemove', canvasMoveHandler)
  canvasEle.removeEventListener('mouseup', canvasMouseUpHandler)
}
function savaBeforeRect(){
  beforeRectArr.push(allRectInfoArr)
}

canvasʵÏÖÊÖ¶¯»æÖƾØÐÎ

ȫ������




  
  
  Document
  


  



�

���С��������д�IJ����Ļ�
���Ը��ҵ�����𣿸�л�ˡ�
��������д:
���ѡ�о��Σ����ľ��δ�С��
����ھ������������֡�
��λ���Բ����ͷ���ŵ�

a1.0
a1.0
��ʽ��Ӫ ï¿½ï¿½È«ï¿½Þ¹ï¿½ï¿½
��(0)  08.06 ï¿½ï¿½ï¿½ï¿½ï¿½ï¿½
�Ƽ�

���º�������

����

���η��ư�

����

��Ѷ�Ķ�

����


��ICP��2022002427��-10 �湫��������43070202000427��
© 2013~2024 haote.com ������