我知道以前曾经问过这个问题,而且我已经读过我能找到的问题和答案,但没有任何效果.
我在本地服务器(IIS)上运行它.我正在尝试从imgur加载图像,然后使用代码将其用作对象的纹理:
var savedImage = /[^?]*$/.exec(location.search)[0];
if (savedImage != "") { savedImageLoad("http://i.imgur.com/" + savedImage + ".jpg"); };
function savedImageLoad(image) {
var mapOverlay = new THREE.ImageUtils.loadTexture(image);
sphere.material = new THREE.MeshBasicMaterial({map: mapOverlay, needsUpdate: true});;
sphere.geometry.buffersNeedUpdate = true;
sphere.geometry.uvsNeedUpdate = true;
}
Run Code Online (Sandbox Code Playgroud)
但它给出了错误:
Uncaught SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': The cross-origin image at http://i.imgur.com/uBD0g95.jpg may not be loaded.
Run Code Online (Sandbox Code Playgroud)
我已尝试THREE.ImageUtils.crossOrigin = "anonymous";
在我的代码开头,最后和其他各个方面放置或改变一些.我添加了一个web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
<add name="Access-Control-Allow-Headers" value="Content-Type" …
Run Code Online (Sandbox Code Playgroud) 我正在尝试获取画布元素的内容(实际上只是加载到画布上的图像)并使用 d3 将它们扭曲为不同的地图投影。所以我找到了一个这样做的例子(this other SO question)。
问题是它不适用于每个投影。编码:
var height = 375,
width = 750;
var canvas = document.createElement('canvas');
document.body.appendChild(canvas);
canvas.width = width;
canvas.height = height;
var context = canvas.getContext('2d');
var projection = d3.geo.lagrange()
.translate([width/2, height/2])
.scale(100); //SET SCALE HERE
var path = d3.geo.path().projection(projection);
var image = new Image();
image.crossOrigin = 'anonymous';
image.src = 'http://i.imgur.com/zZkxbz7.png';
image.onload = function() {
var dx = width,
dy = height;
context.drawImage(image, 0, 0, dx, dy);
var sourceData = context.getImageData(0, 0, dx, dy).data,
target = …
Run Code Online (Sandbox Code Playgroud) 事实证明这比我想象的要困难得多(而且可能应该是这样).
我已经尝试过Cygwin + curl,但是无法运行(Cygwin永远无法找到curl.exe,但我确实进行了包检查,它就在那里).
我已经使用命令提示符尝试了Windows的curl,它可以工作.但我有很多网址需要检查并单独进行,只是时间效率不高.我无法弄清楚如何通过cmd提示告诉curl使用这里提到的文件(因为没有"xargs").
我也尝试过使用PowerShell,但这也存在问题.当我尝试在这里遵循选项1时
我尝试运行时遇到错误$xHTTP.open("GET",$url,$false)
:
使用"3"参数调用"open"的异常:"未指定的错误(来自HRESULT的异常:0x80004005(E_FAIL))"
同样使用PowerShell,我完全不知道如何使用包含url的文件.我对PS的了解非常有限(如不存在).
这里最好的是弄清楚如何让命令提示符/ curl使用文件,但我无法弄明白.
我试图去适应这个代码(这本身就是一个实现此).我已经使一般的可视化和渲染工作,但我现在正试图动画一些逼真的动作.
光源的点由标准化矢量确定(例如THREE.Vector3(1, 0.75, 0)
,光将看起来来自右上角).现在我想做的是让矢量围绕球体旋转,使得球体看起来像是围绕光源旋转.但我无法弄清楚如何做到这一点.我已经尝试更新/更改矢量的位置.但我不确定如何计算正确的下一个x,y,z
值.我尝试过应用欧拉角和旋转矩阵,如下所示:
euler = new THREE.Euler(f,g,h, 'XYZ');
matrix = new THREE.Matrix4().makeRotationFromEuler(euler);
light = vector.applyMatrix4(matrix);
Run Code Online (Sandbox Code Playgroud)
但在这里,我不确定如何获得正确的值f,g,h
,使光不仅仅在球体周围摆动.
我是否走在正确的轨道上?
我真的很惊讶我找到答案就这么麻烦了.我有2列包含一堆数字(在同一工作表上).我只想让代码说"如果第1列中的值>第2列中的值,请对列中的每一行执行此操作".我试过了
If sheet.range("B2:B35").Value > sheet.range("C2:C35").Value Then
'do something
End If
Run Code Online (Sandbox Code Playgroud)
但显然这不起作用.
我从一张工作表中获取值,然后使用 Excel 中的宏将它们放入另一张工作表中。我目前有这个工作正常:
sheet.range("B2:B35").Value = "=IF(SUMPRODUCT(--(Raw!$B$11:$B$322=$A2),--(Raw!$D$11:$D$322=All!$B$2),Raw!$H$11:$H$322)<>0,SUMPRODUCT(--(Raw!$B$11:$B$322=$A2),--(Raw!$D$11:$D$322=All!$B$2),Raw!$H$11:$H$322),""-"")"
Run Code Online (Sandbox Code Playgroud)
显然,它把整个公式作为单元格的值。我想要的只是将公式的结果放入单元格中。我尝试在“IF ...”部分添加 Evaluate() ,但 IF 无法正确评估(我只是在每个单元格中得到“-”)。这是否可以做到,或者我是否必须有单独的代码来循环并将值更改为单元格的值?
当点击一个按钮时,我试图让球体旋转一定次数(用户选择的次数).由于转数是开放式的,我认为最简单的方法是在for
循环中完成:
$('#clickme').on('click', function () {
var multiple = 4; //Change this value to rotate at different angles
var rotationVector = new THREE.Vector3(0,1,0);
var angle = ((360 / multiple) * Math.PI) / 180;
for (var i = 0; i < multiple; i++) {
sphere.rotateOnAxis(rotationVector, angle);
alert(i);
}
});
Run Code Online (Sandbox Code Playgroud)
现在alert
只是一个占位符,但我确实希望在每次轮换后完成其他事情.这里的问题是旋转永远不会完成.没有错误,它会触及该行代码,但对象永远不会旋转.如果我取出sphere.rotateOnAxis
for循环,那么它工作正常(至少每次点击旋转一次).我尝试了各种重新渲染场景的方法,但是从来没有做过任何事情.
这里的工作示例:http://jsfiddle.net/weatL3nc/2/
javascript ×4
three.js ×3
excel ×2
vba ×2
compare ×1
cross-domain ×1
curl ×1
d3.geo ×1
d3.js ×1
evaluate ×1
formula ×1
function ×1
powershell ×1