import sys
from OCC.Core.gp import gp_Pnt
from OCC.Core.Geom import Geom_CartesianPoint
from OCC.Core.Quantity import Quantity_Color, Quantity_TOC_RGB
from OCC.Core.Aspect import (Aspect_TOM_POINT,Aspect_TOM_PLUS,Aspect_TOM_STAR,Aspect_TOM_X,Aspect_TOM_O,Aspect_TOM_O_POINT,Aspect_TOM_O_PLUS,Aspect_TOM_O_STAR,
Aspect_TOM_O_X,Aspect_TOM_RING1,Aspect_TOM_RING2,Aspect_TOM_RING3,Aspect_TOM_BALL)
from OCC.Core.AIS import AIS_Point
from OCC.Core.Prs3d import Prs3d_PointAspect, Prs3d_Drawer
from OCC.Display.SimpleGui import init_display
def pnt():
ALL_ASPECTS = [Aspect_TOM_POINT, Aspect_TOM_PLUS, Aspect_TOM_STAR, Aspect_TOM_X, Aspect_TOM_O,
Aspect_TOM_O_POINT, Aspect_TOM_O_PLUS, Aspect_TOM_O_STAR, Aspect_TOM_O_X,
Aspect_TOM_RING1, Aspect_TOM_RING2, Aspect_TOM_RING3, Aspect_TOM_BALL]
import math
# create a point
for idx in range(10):
x = 0 + math.sin(idx * 0.1*3.14 )
for idy in range(10):
y = 0 + math.cos(idy * 0.1*3.14 )
for idz, aspect in enumerate(ALL_ASPECTS):#枚举
z = 0 + idz / len(ALL_ASPECTS)
p = Geom_CartesianPoint(gp_Pnt(x, y, z))#设置点的位置
'''for idx in range(60):
x = 0 + 10*math.sin(idx * 0.1 +1)
for idy in range(60):
y = 0 + 5*math.sin(idy * 0.1+5 )
for idz, aspect in enumerate(ALL_ASPECTS):#枚举
z = 0 + idz / len(ALL_ASPECTS)
p = Geom_CartesianPoint(gp_Pnt(x, y, z))#设置点的位置'''
# for idx in range(10):
# for idy in range(10):
# for idz, aspect in enumerate(ALL_ASPECTS): # 枚举
# x = 0 + idx * 0.1
# y = 0 + idy * 0.1
# z = 0 + idz / len(ALL_ASPECTS)
# p = Geom_CartesianPoint(gp_Pnt(x, y, z)) # 设置点的位置
# color = Quantity_Color(x / len(ALL_ASPECTS), 0, z, Quantity_TOC_RGB)#颜色
color = Quantity_Color(x / len(ALL_ASPECTS),0.5, z, Quantity_TOC_RGB) # 颜色
ais_point = AIS_Point(p)#将点设置为AI是
drawer = ais_point.Attributes()#定义画笔属性
asp = Prs3d_PointAspect(aspect, color, 3)# 特征、颜色
drawer.SetPointAspect(asp)#画笔设置
ais_point.SetAttributes(drawer)#画笔加载
display.Context.Display(ais_point, False)
display.FitAll()
start_display()
def exit(event=None):
sys.exit()
if __name__ == '__main__':
display, start_display, add_menu, add_function_to_menu = init_display()
pnt()