html5-canvas 相关问题

Canvas是一个HTML元素,允许2D和3D中的2D形状,3D形状,位图图像和动画的动态,可编写脚本的渲染。

在 .NET Core 中使用 Konva.js 和 HTML5 Canvas 在移动和桌面上出现图像扭曲问题

在使用 Konva.js 进行画布操作的 .NET Core 项目中将徽标放置在画布上时,我遇到了严重的图像失真问题。这个问题在移动设备上更为明显

回答 1 投票 0

如何修复JS画布上的模糊边缘

我正在画布上工作,我希望它能够响应(在不同的屏幕尺寸上看起来相同),可调整大小(当浏览器窗口调整大小并正确调整大小时看起来相同),大小可调(用户可以输入

回答 1 投票 0

使Html5 Canvas进度条从半圆变为圆形

我正在使用 Html5 Canvas 创建一个进度条,我需要根据提供的值显示进度条。现在用户设置一些值,并基于它进度条应该完成进度...

回答 1 投票 0

Webgl 未捕获引用错误:createShaderFromScriptElement 未定义

我找不到这里缺少的内容,为什么会出现此错误?未捕获的引用错误:createShaderFromScriptElement 未定义 我从一个常见的教程中得到了这个并粘贴了它。浏览...

回答 2 投票 0

Canvas Context 上的异步函数冲突

我尝试使用画布开发一个图形绘制网络应用程序,其中包含线条动画,如下所示: 函数 animateLine(x1, y1, x2, y2) { ctx.lineWidth = 5; 常量 nrFrames = 30; 反对...

回答 1 投票 0

如何旋转画布上的特定图像层?

我有一个画布,绘制背景图像,然后绘制几个图层: context.drawImage(背景, 0, 0, 宽度, 高度); 层.forEach((层) => { context.drawImage(图层, 0, 0, 宽度,

回答 1 投票 0

可调整大小的画布,Web 组件可无限增长

我正在尝试使用 Web 组件创建一个可调整大小的 ,但是,出于某种原因,以我正在做的方式(使用 ResizeObserver),初始高度在外部 &l 上从零增长到无限...

回答 1 投票 0

了解 konvajs 中的单位(高度、宽度、x、y)

我对 konvajs 中的单位有一些误解。 为简单起见,我使用 1cm = 1px。 我的墙尺寸为 300 厘米 x 300 厘米,图片尺寸为 40x60(如果是肖像,则为 60x40)。 我已经创建了

回答 1 投票 0

将滚动事件从子<div>传递到<canvas>(Excalidraw)

在我当前的项目中,我使用 Excalidraw,并在 之上绘制 的顶层。一切都很好,但是,当涉及到滚动无限画布时...... 在我当前的项目中,我使用 Excalidraw,并在 <div> 之上绘制 <canvas> 的顶层。这一切都工作正常,但是,当涉及到滚动无限画布时,如果鼠标位于其中一个 <div> 的顶部,滚动事件将不会传递到下面的画布,因此这些 <div>让用户体验变得相当笨拙。 有没有办法让这些 <div> 对滚动事件不做出反应?我在 CSS 中尝试过类似 pointer-events: none 的方法,它可以工作,但是 <div> 根本不会对任何东西做出反应。 这是一个带有示例的 CodeSandbox,可以通过以下代码块进行总结: "use client"; import { useMemo } from "react"; import dynamic from "next/dynamic"; const Excalidraw = dynamic( async () => { const mod = await import("@excalidraw/excalidraw"); return mod.Excalidraw; }, { ssr: false }, ) export default function Home() { const Excal = useMemo(() => <Excalidraw gridModeEnabled />, []) return ( <main className="absolute w-screen h-screen"> <div style={{ position: "fixed", zIndex: 100, top: "100px", left: "100px", backgroundColor: "yellow", cursor: "pointer", }} > <p>here</p> </div> {Excal} </main> ) } 嗯,我不知道如何编辑沙箱中的代码,但我已经在 Chrome DevTools 中成功编辑了它,因此您可以在源代码中应用相同的解决方案。 基本上你必须拦截滚轮事件并手动将其分派到画布。 我已为黄色框分配了一个 ID (my123),以便能够在我的 javascript 代码中引用它。 我还创建了一个变量来从我们的事件处理程序指向画布: myCanvas = $('.excalidraw__canvas.interactive') 然后 $('#my123').onmousewheel = function(e) { e.preventDefault(); myCanvas.dispatchEvent(new WheelEvent('wheel', { bubbles: e.bubbles, cancelable: e.cancelable, ctrlKey: e.ctrlKey, shiftKey: e.shiftKey, deltaX: e.deltaX, deltaY: e.deltaY, deltaMode: e.deltaMode })); } 传递 ctrlKey 和 shiftKey 属性也允许缩放和水平滚动。 请务必在创建画布后附加事件处理程序。

回答 1 投票 0

如何将 YouTube iframe 中的视频渲染到画布中?

各位!如何渲染来自 You_Tube 的视频 标记到画布上?

回答 2 投票 0

如何使用 javascript 在 HTML canvas 元素上嵌入 YouTube 网址

我正在努力如何使用 JavaScript 在 html canvas 元素上播放嵌入的 YouTube 网址。 我尝试过的示例代码 videoAsset = document.createElement("视频"); youtube = document.createEl...

回答 2 投票 0

倾斜运动如何影响俯仰和偏航?

我正在尝试模拟飞机的转弯,特别是银行。因此,我想要一个俯仰运动来根据滚转水平改变飞机的实际俯仰和偏航。例如,如果...

回答 1 投票 0

存储和检索 Fabric.js 项目

详细信息:我们将 Fabric.js 与 React 集成,以允许在画布上绘图。然而,我们现在面临着将画布数据保存在数据库中并在保留自定义属性的同时检索它的挑战......

回答 1 投票 0

为什么无法下载最终版 - image3.png?

这是用户选择一张图像的代码。 该图像成功地与第二张图像叠加,结果为 image3.png。但image3无法通过按钮下载。我也做不到

回答 1 投票 0

将 Three.js 动画放入 div 中

这是三个.js动画代码示例: var 角速度 = 0.2; var 最后时间 = 0; 函数动画(){ var time = (new Date()).getTime(); var timeDiff =...</desc> <question vote="26"> <p>这是三个.js动画代码示例:</p> <pre><code>&lt;script defer=&#34;defer&#34;&gt; var angularSpeed = 0.2; var lastTime = 0; function animate(){ var time = (new Date()).getTime(); var timeDiff = time - lastTime; var angleChange = angularSpeed * timeDiff * 2 * Math.PI / 1000; plane.rotation.z += angleChange; lastTime = time; renderer.render(scene, camera); requestAnimationFrame(function(){ animate(); }); } var renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1000); camera.position.y = -450; camera.position.z = 400; camera.rotation.x = 45 * (Math.PI / 180); var scene = new THREE.Scene(); var plane = new THREE.Mesh(new THREE.PlaneGeometry(300, 300), new THREE.MeshNormalMaterial()); plane.overdraw = true; scene.add(plane); animate(); &lt;/script&gt; </code></pre> <p>我想通过 div id 将此动画代码绑定到某个特定的 div。因此,动画将显示在 div 内部。这将使我能够轻松地使用 CSS 操纵动画位置。我想到的是这样的事情:</p> <p>html:</p> <pre><code>&lt;canvas id=&#34;myCanvas&#34; width=&#34;578&#34; height=&#34;200&#34;&gt;&lt;/canvas&gt; </code></pre> <p>javascript: </p> <pre><code>var canvas = document.getElementById(&#39;myCanvas&#39;); var context = canvas.getContext(&#39;2d&#39;); // do stuff here </code></pre> <p>但是我还没有找到一种方法可以用 Three.js 来做这样的事情。正如您在代码示例中看到的,没有我可以引用的画布元素。有什么想法吗?</p> </question> <answer tick="true" vote="43"> <p>您可以使用如下所示的模式:</p> <pre><code>&lt;div id=&#34;canvas&#34;&gt;&lt;/div&gt; </code></pre> <pre><code>#canvas { background-color: #000; width: 200px; height: 200px; border: 1px solid black; margin: 100px; padding: 0px; position: static; /* fixed or static */ top: 100px; left: 100px; } </code></pre> <pre><code>const container = document.getElementById( &#39;canvas&#39; ); document.body.appendChild( container ); const renderer = new THREE.WebGLRenderer(); renderer.setPixelRatio( window.devicePixelRatio ); renderer.setSize( 200, 200 ); container.appendChild( renderer.domElement ); </code></pre> <p>小提琴:<a href="https://jsfiddle.net/uf4c0ws9/" rel="nofollow noreferrer">https://jsfiddle.net/uf4c0ws9/</a></p> <p>另请参阅 <a href="https://stackoverflow.com/questions/13542175/three-js-ray-intersect-fails-by-adding-div/13544277#13544277">THREE.js 添加 div 导致射线相交失败</a></p> <p>三.js r.150</p> </answer> <answer tick="false" vote="2"> <p><strong>如果您不想硬编码渲染器大小,那么下面的代码可以帮助您。</strong></p> <p>我动态计算画布的高度和宽度,然后相应地设置渲染器的大小和相机的位置。</p> <p>CSS</p> <pre><code> #canvas { background-color: #FFF; width: 200px; height:200px; border: 1px solid black; } </code></pre> <p>HTML</p> <pre><code>&lt;div id=&#34;canvas&#34;/&gt; </code></pre> <p>JavaScript</p> <pre><code> //Add Renderer renderer = new THREE.CanvasRenderer(); var container = document.getElementById(&#39;canvas&#39;); var w = container.offsetWidth; var h = container.offsetHeight; renderer.setSize(w, h); container.appendChild(renderer.domElement); //Add Camera camera = new THREE.PerspectiveCamera( 75, w / h, 2, 1000 ); camera.position.z = 400; //Create Scene with geometry, material-&gt; mesh scene = new THREE.Scene(); geometry = new THREE.IcosahedronGeometry( 200, 3 ); material = new THREE.MeshBasicMaterial( { color: 0x000000, wireframe: true, wireframeLinewidth: 1 } ); mesh = new THREE.Mesh( geometry, material ); scene.add( mesh ); </code></pre> </answer> <answer tick="false" vote="0"> <p>这是 WestLangley 显示的模式的另一种变体:</p> <p>HTML:</p> <pre><code>&lt;div class=&#34;relative h-256 w-256&#34;&gt; &lt;div id=&#34;scene&#34;&gt;&lt;/div&gt; &lt;/div&gt; </code></pre> <p>CSS:</p> <pre><code>#scene { overflow: hidden; position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .relative { position: relative; } .h-256 { height: 256px; } .w-256 { width: 256px; } </code></pre> <p>JavaScript:</p> <pre><code>this.mount = document.querySelector(&#39;#scene&#39;); this.width = document.querySelector(&#39;#scene&#39;).offsetWidth; this.height = document.querySelector(&#39;#scene&#39;).offsetHeight; ... this.renderer = new THREE.WebGLRenderer({ alpha: true }); this.renderer.setPixelRatio(window.devicePixelRatio); this.renderer.setSize(this.width, this.height); this.mount.appendChild(this.renderer.domElement); </code></pre> <p>Three.JS 在 <pre><code>&lt;canvas&gt;</code></pre> 容器内渲染 <pre><code>div#scene</code></pre> 元素,该元素绝对定位以填充包装器。大小由包装器 div 的尺寸控制。</p> </answer> </body></html>

回答 0 投票 0

使用画布将文本添加到图像

我正在尝试将图像转换为画布,然后向图像添加文本并将其转换回图像,但我在执行此操作时遇到问题。文本永远不会添加到最终图片中。 在...

回答 1 投票 0

在调整大小的画布上绘图时鼠标位置错误

我正在为我的 ML 模型构建一个 Web 应用程序,其中我需要用鼠标指针标记图像中存在遮挡的区域。然后,ML 模型获取标记图像并重建

回答 1 投票 0

使用 jsPDF addImage JPEG 将 p5.js sketch canvas 下载为 PDF

在使用 JS 将画布转换为 JPEG 后,尝试运行一个最小脚本,以使用 jsPDF(特别是 jsPDF addImage 方法)将 p5.js 草图画布元素下载为 PDF

回答 1 投票 0

制作透明径向渐变时遇到问题(JavaScript/HTML)

背景: 我正在尝试使用光线投射制作光源,玩家可以在随机生成的迷宫中使用该光源。从鼠标指针投射的光线。我正在使用的径向渐变发生变化...

回答 1 投票 0

将 ImageBitmap 转换为 Blob

我正在使用 createImageBitmap() 创建一个 ImageBitmap 文件。 如何将此文件转换为 blob 或最好是 PNG 以便我可以上传?

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.