Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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
Webgl 如何像canvas 2d lineTo一样用宽度绘制路径_Webgl_Three.js - Fatal编程技术网

Webgl 如何像canvas 2d lineTo一样用宽度绘制路径

Webgl 如何像canvas 2d lineTo一样用宽度绘制路径,webgl,three.js,Webgl,Three.js,如何绘制与画布2d lineTo一样宽的路径。我想是三条。线条非常接近我的要求,但我发现在某些平台上线条的宽度不能大于1。有没有其他方法可以达到这个目的? 非常感谢 线宽(和封口等)设置为材质属性,而不是线条属性。因此,只需指定(作为测试)material.linewidth=3并尝试一下。查看three.LineBasicMaterial的build/three.js代码列表了解更多详细信息。要绕过线宽限制,我认为您必须自己生成三角形的线条几何体,而不是依赖GL绘制粗线条。但是画布2D线做了一

如何绘制与画布2d lineTo一样宽的路径。我想是三条。线条非常接近我的要求,但我发现在某些平台上线条的宽度不能大于1。有没有其他方法可以达到这个目的?
非常感谢

线宽(和封口等)设置为材质属性,而不是线条属性。因此,只需指定(作为测试)material.linewidth=3并尝试一下。查看three.LineBasicMaterial的build/three.js代码列表了解更多详细信息。

要绕过线宽限制,我认为您必须自己生成三角形的线条几何体,而不是依赖GL绘制粗线条。但是画布2D线做了一些奇怪的事情(http://jsfiddle.net/greggman/hWmWT/)

另一种方法是向线绘制代码添加一些二维偏移,并多次绘制相同的线,每次更改偏移


可能有您需要的

谢谢您的回答,我知道我们可以按LineBasicMaterial设置线宽,但在我的windows xp中,别名为\u line\u width\u RANGE=1-1,因此任何超出此范围的值都是无效的,这让我很恼火。如果canvas可以绘制,three.js将绘制它——它只调用canvas ops。那么你是说你希望three.js提供canvas没有的线条绘制功能吗?哦,我的意思是,在webgl中,线条宽度不能设置为大于1。我通过计算点来模拟一条线并使用THREE.Ribbon绘制它,解决了这个问题。我现在的问题是丝带不能使末端圆,我需要画一个圆来解决这个问题。是的,你是对的。如果有一个库封装了这个功能,那就太棒了。我注意到three.js有一个类“three.Ribbon”,我不确定这是否能满足我的需求。我已经检查过了,我认为这些点太近了,(256,256)(256,257)。检查一下,我不理解你关于“点太近”的评论。没有“太近”这回事。只有规格和它所说的发生了什么。很明显,该规范所说的与我认为大多数人所期望的有所不同。它希望绘制2或3个大矩形,100x100像素,每个矩形与前一个矩形偏移1像素。与之相反,线宽所做的是生成几何图形线宽/2个单位,垂直于线条两侧的线条方向,连接端点,然后填充结果。我想说的是,三个点的距离是1,线宽是10,我认为如果距离是10,线宽是2,一定行。谢谢。