- // ¹Ù·½Èí¼þ½»Á÷ȺºÅ711841924
- // ÒÆ¶¯µ½Æðµã
- hid.moveToRealPoint(333, 1146);
- sleep.second(1);
- // ¶¨Òå±´Èû¶ûÇúÏߵIJÎÊý
- let startX = 333;
- let startY = 1146;
- let endX = 370;
- let endY = 183;
- let control1X = 100; // Äã¿ÉÒÔ¸ù¾ÝÐèÒªµ÷Õû¿ØÖƵãµÄλÖÃ
- let control1Y = 300; // Äã¿ÉÒÔ¸ù¾ÝÐèÒªµ÷Õû¿ØÖƵãµÄλÖÃ
- let control2X = 400; // Äã¿ÉÒÔ¸ù¾ÝÐèÒªµ÷Õû¿ØÖƵãµÄλÖÃ
- let control2Y = 600; // Äã¿ÉÒÔ¸ù¾ÝÐèÒªµ÷Õû¿ØÖƵãµÄλÖÃ
- let duration = 2; // ³ÖÐøÊ±¼äΪ2Ãë
- let steps = 100; // ·Ö³É100²½
- // ¼ÆËã±´Èû¶ûÇúÏßÉϵĵã
- function bezierCurvePoint(t, p0, p1, p2, p3) {
- let t1 = 1 - t;
- return t1 * t1 * t1 * p0 + 3 * t1 * t1 * t * p1 + 3 * t1 * t * t * p2 + t * t * t * p3;
- }
- for (let i = 0; i <= steps; i++) {
- let t = i / steps;
- let x = bezierCurvePoint(t, startX, control1X, control2X, endX);
- let y = bezierCurvePoint(t, startY, control1Y, control2Y, endY);
- hid.moveToRealPoint(x, y);
- sleep.second(duration / steps);
- }
- // ½áÊø²Ù×÷
¸´ÖÆ´úÂë
hid.moveToRealPoint(333, 1146);£ºÕâÐдúÂëָʾÉ豸£¨¿ÉÄÜÊÇÄ£ÄâÆ÷»ò×Ô¶¯»¯²âÊÔ¹¤¾ß£©µÄhid£¨Human Interface Device£©Ä£¿é½«²Ù×÷µãÒÆ¶¯µ½ÆÁÄ»ÉϵÄ×ø±êµã(333, 1146)¡£Õâ¸öµã±»¶¨ÒåΪÇúÏߵįðµã¡£ sleep.second(1);£ºÔÚÒÆ¶¯µ½Æðµãºó£¬³ÌÐò»áÔÝÍ£1ÃëÖÓ¡£ÕâÊÇΪÁËÈÃÉ豸ÓÐ×ã¹»µÄʱ¼äµ½´ïÆðµãλÖã¬È·±£ºóÐø²Ù×÷µÄ׼ȷÐÔ¡£ ½ÓÏÂÀ´µÄ¼¸ÐдúÂ붨ÒåÁ˱´Èû¶ûÇúÏߵIJÎÊý£º startX ºÍ startY ¶¨ÒåÁËÇúÏߵįðµã¡£ endX ºÍ endY ¶¨ÒåÁËÇúÏßµÄÖյ㡣 control1X ºÍ control1Y, control2X ºÍ control2Y ¶¨ÒåÁ˱´Èû¶ûÇúÏßµÄÁ½¸ö¿ØÖƵ㡣ͨ¹ýµ÷ÕûÕâЩ¿ØÖƵãµÄλÖ㬿ÉÒԸıäÇúÏßµÄÐÎ×´¡£ duration ¶¨ÒåÁËÕû¸öÒÆ¶¯¹ý³Ì³ÖÐøµÄʱ¼ä£¬ÕâÀïÊÇ2Ãë¡£ steps ¶¨ÒåÁËÒÆ¶¯¹ý³ÌÖн«ÇúÏß·Ö¸î³É¶àÉÙ²½£¬ÕâÀïÊÇ100²½¡£·Ö¸îµÄ²½ÊýÔ½¶à£¬Òƶ¯¹ý³ÌԽƽ»¬¡£ function bezierCurvePoint(t, p0, p1, p2, p3)£ºÕâÊÇÒ»¸ö¼ÆËã±´Èû¶ûÇúÏßÉÏijһµãµÄº¯Êý¡£Ëü½ÓÊܲÎÊý t£¨´Ó0µ½1µÄÖµ£¬±íʾÇúÏßÉϵÄλÖã©£¬ÒÔ¼°Ëĸö¿ØÖƵãµÄ×ø±ê£¨p0 µ½ p3£©£¬È»ºó¸ù¾Ý±´Èû¶ûÇúÏß¹«Ê½¼ÆËã³öÇúÏßÉϵÄxºÍy×ø±ê¡£ for (let i = 0; i <= steps; i++)£ºÕâÊÇÒ»¸öÑ»·£¬Ëü»á´Ó0µ½100£¨°üÀ¨100£©Ö´ÐÐ101´Î£¬Ã¿´Îµü´ú¼ÆËãÒ»¸öÇúÏßÉϵĵ㡣t µÄÖµ´Ó0µ½1£¬±íʾ´ÓÇúÏ߯ðµãµ½ÖÕµãµÄ·¾¶¡£ ÔÚÑ»·ÄÚ²¿£¬Ê×ÏȼÆËã t µÄÖµ£¬È»ºóʹÓà bezierCurvePoint º¯Êý¼ÆËã³öÇúÏßÉϵÄÏÂÒ»¸öµãµÄ x ºÍ y ×ø±ê¡£ hid.moveToRealPoint(x, y);£º½«É豸µÄ²Ù×÷µãÒÆ¶¯µ½¼ÆËã³öµÄ×ø±êµã¡£ sleep.second(duration / steps);£ºÔÚÿ´ÎÒÆ¶¯ºó£¬³ÌÐò»áÔÝÍ£Ò»¶Îʱ¼ä£¬Õâ¸öʱ¼äÊÇÕû¸öÒÆ¶¯¹ý³Ì³ÖÐøÊ±¼ä³ýÒÔ²½Êý¡£ÕâÀïÊÇΪÁËÈ·±£Òƶ¯¹ý³ÌÔÚ2ÃëÄÚÍê³É¡£
|