Так что когда вы нажимаете на один из хексарских элементов, вы перемещаете и вращаются. /> Что должна быть стратегия рендеринга?
Этот объект состоит из множества маленьких гексахедров < /p>
vtkassembly. Может быть, тысяча актеров проведет время < /p>
def open_node_data(self):
# options = QFileDialog.Options()
files, _ = QFileDialog.getOpenFileNames(self, "Select Files", "", "All Files (*);;Text Files (*.txt)")
if len(files) == 2:
self.points, self.uPoints, self.heatmaps = read_Nodes(files[0] if "Node" in files[0] else files[1])
self.cells = read_Triangles(files[0] if "Element" in files[0] else files[1])
num_hex = len(self.cells) // 6
for i in range(num_hex):
hex_faces = self.cells[i * 6:(i + 1) * 6]
self.create_mesh(self.points, hex_faces, color=[0.31, 0.51, 0.9], bounding=False)
< /code>
Прочитайте все точки и лица гексаэдрона, затем разделите их на независимые полидаты, храните их в актере, а затем добавьте их в vtkassmbly. Цель этого состоит в том, чтобы нажать на отдельные подразделения гексаэдрона, когда мышь выбирается и работает на них, но взаимодействие слишком громоздко < /p>
def create_mesh(self, points, cells, color, bounding=False, num=0):
points_vtk = vtk.vtkPoints()
for point in points:
points_vtk.InsertNextPoint(point)
cells_vtk = vtk.vtkCellArray()
for cell in cells:
cells_vtk.InsertNextCell(4, cell[1:])
polydata = vtk.vtkPolyData()
polydata.SetPoints(points_vtk)
polydata.SetPolys(cells_vtk)
featureEdges = vtk.vtkFeatureEdges()
featureEdges.SetInputData(polydata)
featureEdges.BoundaryEdgesOn()
featureEdges.Update()
boundary = featureEdges.GetOutput()
points_list = []
for i in range(boundary.GetNumberOfPoints()):
p = boundary.GetPoint(i)
points_list.append(p)
pointColors = vtk.vtkUnsignedCharArray()
pointColors.SetNumberOfComponents(3)
pointColors.SetName("PointColors")
numPts = polydata.GetNumberOfPoints()
for i in range(numPts):
pointColors.InsertNextTuple3(color[0]*255,color[1]*255,color[2]*255)
polydata.GetPointData().SetScalars(pointColors)
mapper = vtk.vtkPolyDataMapper()
mapper.SetInputData(polydata)
actor = vtk.vtkActor()
actor.SetMapper(mapper)
actor.GetProperty().SetColor(color)
self.interactor_style.register_actor_polydata(actor, polydata)
self.assembly.AddPart(actor)
self.renderer.AddActor(self.assembly)
Так что когда вы нажимаете на один из хексарских элементов, вы перемещаете и вращаются. /> Что должна быть стратегия рендеринга? Этот объект состоит из множества маленьких гексахедров < /p> vtkassembly. Может быть, тысяча актеров проведет время < /p> [code]def open_node_data(self): # options = QFileDialog.Options() files, _ = QFileDialog.getOpenFileNames(self, "Select Files", "", "All Files (*);;Text Files (*.txt)") if len(files) == 2: self.points, self.uPoints, self.heatmaps = read_Nodes(files[0] if "Node" in files[0] else files[1]) self.cells = read_Triangles(files[0] if "Element" in files[0] else files[1]) num_hex = len(self.cells) // 6 for i in range(num_hex): hex_faces = self.cells[i * 6:(i + 1) * 6] self.create_mesh(self.points, hex_faces, color=[0.31, 0.51, 0.9], bounding=False) < /code> Прочитайте все точки и лица гексаэдрона, затем разделите их на независимые полидаты, храните их в актере, а затем добавьте их в vtkassmbly. Цель этого состоит в том, чтобы нажать на отдельные подразделения гексаэдрона, когда мышь выбирается и работает на них, но взаимодействие слишком громоздко < /p> def create_mesh(self, points, cells, color, bounding=False, num=0): points_vtk = vtk.vtkPoints() for point in points: points_vtk.InsertNextPoint(point)
cells_vtk = vtk.vtkCellArray() for cell in cells: cells_vtk.InsertNextCell(4, cell[1:])
points_list = [] for i in range(boundary.GetNumberOfPoints()): p = boundary.GetPoint(i) points_list.append(p)
pointColors = vtk.vtkUnsignedCharArray() pointColors.SetNumberOfComponents(3) pointColors.SetName("PointColors") numPts = polydata.GetNumberOfPoints() for i in range(numPts): pointColors.InsertNextTuple3(color[0]*255,color[1]*255,color[2]*255) polydata.GetPointData().SetScalars(pointColors)
mapper = vtk.vtkPolyDataMapper() mapper.SetInputData(polydata) actor = vtk.vtkActor() actor.SetMapper(mapper) actor.GetProperty().SetColor(color) self.interactor_style.register_actor_polydata(actor, polydata) self.assembly.AddPart(actor) self.renderer.AddActor(self.assembly) [/code] Я не знаю, что делать.
Так что когда вы нажимаете на один из хексарских элементов, вы перемещаете и вращаются. /> Что должна быть стратегия рендеринга?
Этот объект состоит из множества маленьких гексахедров
vtkassembly. Может быть, тысяча...
Введите Описание изображения. Тщательно ли вы отображаете этот объект так, чтобы, когда вы нажимаете на один из шестигранных элементов, вы двигаете и вращаете его по отдельности (только для выбранного шестигранника)?
Что должно быть стратегией...
У меня есть большой набор данных, примерно 100 тысяч или 1 миллион строк, и у меня есть функция, которая выполняет векторные вычисления, которые занимают 0,03 секунды, теперь все мои столбцы, прежде чем процесс, могут быть одинаковыми для каждой...
В моем клиенте Quarkus Redis я создаю гораздо больше соединений, чем позволяет мой пул соединений. Я не уверен, почему это происходит. Мой пул соединений имеет maxPoolSize = 6 maxPoolWaiting = 24, но моя служба elasticache показывает, что мои...
У меня есть приложение WPF, созданное с использованием .NET 8, но в какой-то момент оно неожиданно перегрузило как процессор, так и память. Мне удалось сделать снимок памяти, и кажется, что там выделено много объектов TimerQueueTimer, и я не знаю,...