使用tri_mesh可视化三角网格的边界
时间: 2023-07-16 08:14:49 浏览: 97
要使用tri_mesh可视化三角网格的边界,您可以使用以下代码片段:
```python
import numpy as np
import matplotlib.pyplot as plt
import tri_mesh
# 创建一个三角网格
vertices = np.array([[0, 0], [1, 0], [0.5, 1]])
triangles = np.array([[0, 1, 2]])
mesh = tri_mesh.TriMesh(vertices, triangles)
# 绘制三角网格的边界
fig, ax = plt.subplots()
ax.triplot(mesh.vertices[:, 0], mesh.vertices[:, 1], mesh.triangles)
plt.show()
```
在上述代码中,我们使用`tri_mesh`库创建了一个简单的三角网格,并使用`triplots`函数绘制了三角网格的边界。请注意,`triplot`函数只会绘制三角形的边界,并不会填充三角形内部的区域。如果您想要绘制填充的三角形,请尝试使用`tripcolor`函数。
相关问题
检查代码错误:void lrc_head_resolve(char *song_msg[],char * lrc_text[]) { const char* delim =":"; for(int i=0;i<4;i++) { char* t=strtok(lrc_text[i],delim); if(t!=NULL) { char* tri_t=t; while(*tri_t==' ') { tri_t++; } int len=strlen(tri_t); while(tri_t[len-1]==' '&&len>0) { tri_t[len-1]='\0'; len--; } song_msg[i]=tri_t; } } }
代码中可能存在几个错误:
1. 函数参数 `char *song_msg[]` 应该改为 `char *song_msg`,因为你传入的是指向字符串数组的指针,而不是指向字符串数组的指针的指针。
2. 函数参数 `char *lrc_text[]` 应该改为 `char lrc_text[][MAX_LENGTH]`,其中 `MAX_LENGTH` 是你定义的每行歌词的最大长度。这样你才能正确地传递歌词文本的二维数组。
3. 在使用 `strtok` 函数之前,你需要确保 `lrc_text[i]` 是以空字符结尾的字符串。如果不是,你需要在 `lrc_text[i]` 的末尾添加一个空字符。
综上所述,修正后的代码如下:
```c
void lrc_head_resolve(char *song_msg, char lrc_text[][MAX_LENGTH])
{
const char* delim = ":";
for (int i = 0; i < 4; i++)
{
// 确保lrc_text[i]以空字符结尾
int len = strlen(lrc_text[i]);
if (len > 0 && lrc_text[i][len - 1] != '\0')
{
lrc_text[i][len] = '\0';
}
char* t = strtok(lrc_text[i], delim);
if (t != NULL)
{
char* tri_t = t;
while (*tri_t == ' ')
{
tri_t++;
}
int len = strlen(tri_t);
while (len > 0 && tri_t[len - 1] == ' ')
{
tri_t[len - 1] = '\0';
len--;
}
song_msg[i] = tri_t;
}
}
}
```
请注意,我做了一些假设,如 `MAX_LENGTH` 是一个适当的值,并且你已经包含了正确的头文件。如果你有其他要求或者代码上下文,请提供更多细节。
3.建立触发器tri_delete_s2,当删除student表中记录时,将SC表相应记录同时删除。设计用例进行测试。删除触发器tri_delete_s2。
创建触发器:
```
CREATE TRIGGER tri_delete_s2
AFTER DELETE ON student
FOR EACH ROW
DELETE FROM SC WHERE SC.s_id = old.s_id;
```
测试用例:
1. 在student表中删除id为1的记录,检查SC表中是否同时删除了相应记录。
2. 在student表中删除id为2的记录,检查SC表中是否同时删除了相应记录。
3. 在student表中删除id为3的记录,检查SC表中是否同时删除了相应记录。
删除触发器:
```
DROP TRIGGER tri_delete_s2;
```
阅读全文