当我尝试在Dart(使用three.dart和vector_math)上使用SubVectors属性时出现以下错误。
没有为“Vector3”类
定义'subVector'方法
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)]);
答案 0 :(得分:2)
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。