Browse Source

选点selected提示

lstzcy 2 months ago
parent
commit
2cf4109106

BIN
__pycache__/glWidget_simple.cpython-39.pyc


BIN
__pycache__/handle_simple.cpython-39.pyc


+ 13 - 1
glWidget_simple.py

@@ -1,5 +1,6 @@
 import sys
 import sys
 import numpy as np
 import numpy as np
+from PyQt5.QtGui import QColor, QFont
 from PyQt5.QtWidgets import QApplication, QOpenGLWidget, QVBoxLayout, QWidget
 from PyQt5.QtWidgets import QApplication, QOpenGLWidget, QVBoxLayout, QWidget
 from PyQt5.QtCore import Qt, pyqtSignal
 from PyQt5.QtCore import Qt, pyqtSignal
 from OpenGL.GL import *
 from OpenGL.GL import *
@@ -41,6 +42,8 @@ class Simple3DWidget(QOpenGLWidget):
         self.picking = False  # 是否处于拾取模式
         self.picking = False  # 是否处于拾取模式
         self.picking_color_map = {}  # 顶点索引 → 唯一颜色(用于反查)
         self.picking_color_map = {}  # 顶点索引 → 唯一颜色(用于反查)
 
 
+        self.setFont(QFont("SimHei", 10))  # 让 renderText 使用黑体
+
 
 
 
 
 
 
@@ -131,13 +134,22 @@ class Simple3DWidget(QOpenGLWidget):
                 for i, v in enumerate(self.vertices):
                 for i, v in enumerate(self.vertices):
                     # 判断是否是选中点
                     # 判断是否是选中点
                     if self.selected_point is not None and np.allclose(v, self.selected_point, atol=1e-6):
                     if self.selected_point is not None and np.allclose(v, self.selected_point, atol=1e-6):
-                        glColor3f(1.0, 0.0, 0.0)  # 红色高亮
+                        glColor3f(1.0, 1.0, 0.0)  # 黄色高亮
                     else:
                     else:
                         glColor3f(*self.colors[i])  # 原始颜色
                         glColor3f(*self.colors[i])  # 原始颜色
                     glVertex3f(v[0], v[1], v[2])
                     glVertex3f(v[0], v[1], v[2])
             finally:
             finally:
                 glEnd()  # ✅ 保证执行
                 glEnd()  # ✅ 保证执行
 
 
+            # ✅ 在 glEnd() 之后再绘制文字!
+            if self.selected_point is not None:
+                x, y, z = self.selected_point
+                offset = 0.05
+                # 设置文字颜色
+                glColor3f(1.0, 1.0, 0.0)  # 黄色
+                self.renderText(x + offset, y + offset, z + offset, "Selected")
+
+
         elif self.display_mode == 'surface' and len(self.triangles) > 0:
         elif self.display_mode == 'surface' and len(self.triangles) > 0:
             # ✅ 开启光照
             # ✅ 开启光照
             glEnable(GL_LIGHTING)
             glEnable(GL_LIGHTING)