O3D API (1)

1、

o3djs.rendergraph.createBasicView(!o3d.Packpack  
  !o3d.TransformtreeRoot  
  !o3d.RenderNodeopt_parent  
  !o3djs.math.Vector4opt_clearColor  
  numberopt_priority  
  !o3djs.math.Vector4opt_viewport)

参数:
 pack

管理生成对象的Pack包.

 treeRoot视图的根节点.
 opt_parent视图的渲染节点.
 opt_clearColor视图的颜色,[0.1,0.2,0.3,0.4],分别表示[红,绿,蓝,黑],每个值介于0到1之间。
 opt_priority生成对象的优先级。
 opt_viewport视窗设置,例如[0.1,0.1,0.9,0.9],分别表示[左,上,右,下],每个值介于0到1之间,左和右值相加不能大于1,上和下值相加不能大于1
返回值:
! o3djs.rendergraph.ViewInfo.  创建的所有对象的视图信息.

 

例如,

         var viewBackgroundColor=[0.2,0.5,0.6,0.7];

         var viewPort = [0.1,0.1,0.9,0.9];

          g_viewInfo = o3djs.rendergraph.createBasicView(
           g_pack,
           g_client.root,
           g_client.renderGraphRoot,

           viewBackgroundColor,

           1,

           viewPort 
   );

 

 


 

 

2、创建材质 o3djs.material.createBasicMaterial ()

     

 

参数:
 pack管理创建对象的包(Pack)。
 viewInfoAPI函数o3djs.rendergraph.createBasicView创建的视窗信息。
 colorOrTexture颜色矩阵[r, g, b, a]或者一个o3d纹理贴图。
 opt_transparent材质是否是透明的。默认情况下是非透明的。
返回:  
! o3d.Material.生成的材质。

示例代码: 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
非常抱歉,Open3DAPI在更新后发生了变化,`create_from_numpy_array`这个方法已经被移除了。下面是修改后的代码: ```python import numpy as np import open3d as o3d # 读取道路点云txt文件和gps轨迹文件 road_cloud = np.loadtxt("road_cloud.txt") gps_track = np.loadtxt("gps_track.txt") # 计算每个轨迹点之间的曲线距离 distances = [] for i in range(len(gps_track)-1): p1 = gps_track[i] p2 = gps_track[i+1] dist = np.sqrt(np.sum((p2-p1)**2)) distances.append(dist) # 遍历每个轨迹点,检测视点与下一个轨迹点之间是否有障碍物 for i in range(len(gps_track)-1): # 将当前轨迹点作为视点 viewpoint = gps_track[i] print("Viewpoint:", viewpoint) # 找到下一个有障碍物的轨迹点 next_obstacle_index = i+1 for j in range(i+1, len(gps_track)): endpoint = gps_track[j] line = o3d.geometry.LineSet() line.points = o3d.utility.Vector3dVector([viewpoint, endpoint]) line.lines = o3d.utility.Vector2iVector([[0, 1]]) if road_cloud.compute_obb().intersects(line): break else: next_obstacle_index = j # 计算视点与下一个有障碍物的轨迹点之间的曲线距离 distance = np.sum(distances[i:next_obstacle_index]) print("Distance to next obstacle:", distance) # 可视化结果 pcd = o3d.geometry.PointCloud() pcd.points = o3d.utility.Vector3dVector(road_cloud) o3d.visualization.draw_geometries([pcd]) ``` 这个代码中我们使用了`compute_obb`方法来计算点云的OBB包围盒,然后使用包围盒的`intersects`方法来检测障碍物。这样就可以避免使用已经被移除的`create_from_numpy_array`方法了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值