当我尝试在Dart上使用SubVectors属性(带有three.dart和vector_math)时,出现以下错误。
The method 'subVector' is not defined for the class 'Vector3'
for(var x=0;x<width-1;x++){
for(var y=0;y<height-1;y++){
Vector3 vec0; Vector3 vec1; Vector3 n_vec;
// one of two triangle polygons in one rectangle
vec0.subVectors(geometry.vertices[offset(x,y)],geometry.vertices[offset(x+1,y)]);
vec1.subVectors(geometry.vertices[offset(x,y)],geometry.vertices[offset(x,y+1)]);
最佳答案
vector_math
包的subVectors
类没有Vector3
方法。您可以通过将第一个值写入vec0
然后减去另一个值来归档相同的文件:
vec0.setFrom(geometry.vertices[offset(x,y)]);
vec0.sub(geometry.vertices[offset(x+1,y)]);
vec1.setFrom(geometry.vertices[offset(x,y)]);
vec1.sub(geometry.vertices[offset(x,y+1)]);
这将要求
vec0
和vec1
已经使用Vector3
实例进行了初始化。或者,您可以使用减号运算符减去两个值,但这会创建一个新实例:
vec0 = geometry.vertices[offset(x,y)] - geometry.vertices[offset(x+1,y)];
vec1 = geometry.vertices[offset(x,y)] - geometry.vertices[offset(x,y+1)];
您可以查看当前的
vector_math
文档here。
关于dart - Dart中的Vector3 subVector错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24352839/