**重点在于需要一点空间想象力和会使用lagrange插值函数。
在此基础上给出部分点的数据,即可画出圆滑的渐变管道模型。

每两组数据即可画一次壁,此代码每个壁分为360个三角形(三角形越多,画出来越圆。),这里也可以用矩形代替三角形。

话不多说,直接上代码!(纯C代码)


#include<GL/glut.h>
#include<windows.h>
#include<math.h>
#include<stdlib.h>
#include<iostream>
#define    C(j)   cos((3.1415926/180)*2*(j))
#define    S(j)   sin((3.1415926/180)*2*(j))
#pragma comment(lib, "glut32.lib")
GLfloat roate = 0.0;// 设置旋转速率
GLfloat rote = 0.0;//旋转角度
GLfloat anglex = 0.0;//X 轴旋转
GLfloat angley = 0.0;//Y 轴旋转
GLfloat anglez = 0.0;//Z 轴旋转
GLint WinW = 400;
GLint WinH = 400;
GLfloat oldx;//当左键按下时记录鼠标坐标
GLfloat oldy;
float PI=3.1415926f;
#define B 32
void init(void)
{glClearColor(0.0, 0.0, 0.0, 1.0); //背景黑色
}typedef struct cmpcolor
{float r;float g;float b;
}COL;
COL tucolor(float value)
{COL tubecolor={0};value>(B+0.1)?(tubecolor.r=0.6,tubecolor.g=0.5+(value-B)/20.0,tubecolor.b=0):\(((value<B+0.1&&(value>B-0.1)?(tubecolor.r=1,tubecolor.g=0.5,tubecolor.b=0):(tubecolor.r=0.55,tubecolor.g=0.7-(B-value)/20.0,tubecolor.b=0.5))));return tubecolor;
}
float lagrange_polynomial(float *data,float radian_assum)
{float y=0;int i=0;int j=0;float radian[7]={0,30,60,90,120,150,180};float lagx[7]={1,1,1,1,1,1,1};for(i=0;i<7;i++){for(j=0;j<7;j++){if(i==j){continue;}lagx[i]=lagx[i]*(radian_assum-radian[j])/(radian[i]-radian[j]);//拉格朗日基本多项式}}for(i=0;i<7;i++){y=y+data[i]*lagx[i];//拉格朗日插值多项式}return y;
}
void lagrange_interpolation(float *input_data,float *radius)
{float data[7]={0};int i=0;for(i=0;i<6;i++){data[i]=input_data[i];}data[6]=data[0];for(i=0;i<181;i++){radius[i]=lagrange_polynomial(data,i);}
}
void caculate_seat()
{int j=0;int i=1;int k=0;FILE *fp=NULL;float input_data[6]={0};COL seatcolor={0};float seat_1[181]={0};if((fp=fopen("E:\\文件路径","r"))==NULL) //文件路径需改为下面模拟数据所导入的文件路径{printf("can't open this file");exit(0);}fscanf(fp,"%f%f%f%f%f%f",&input_data[0],&input_data[1],&input_data[2],&input_data[3],&input_data[4],&input_data[5]);//读一次数据给input数组lagrange_interpolation(input_data,seat_1);seat_1[180]=seat_1[0];float seat_2[181]={0};for(i=1;i<200;i++){fscanf(fp,"%f%f%f%f%f%f",&input_data[0],&input_data[1],&input_data[2],&input_data[3],&input_data[4],&input_data[5]);//读一次数据给input数组,lagrange_interpolation(input_data,seat_2);seat_2[180]=seat_2[0];for(j=0;j<180;j++){           glBegin(GL_TRIANGLES);seatcolor=tucolor(seat_1[j]);glColor3f(seatcolor.r,seatcolor.g,seatcolor.b);glVertex3f(seat_1[j]*C(j)/B,seat_1[j]*S(j)/B,(-200+2*(i-1.0))/B);seatcolor=tucolor(seat_2[j]);glColor3f(seatcolor.r,seatcolor.g,seatcolor.b);glVertex3f(seat_2[j]*C(j)/B,seat_2[j]*S(j)/B,(-200+2.0*i)/B);seatcolor=tucolor(seat_1[j+1]);glColor3f(seatcolor.r,seatcolor.g,seatcolor.b);glVertex3f(seat_1[j+1]*C(j+1)/B,seat_1[j+1]*S(j+1)/B,(-200+2.0*(i-1))/B);//第一个三角glEnd();glBegin(GL_TRIANGLES);seatcolor=tucolor(seat_1[j+1]);glColor3f(seatcolor.r,seatcolor.g,seatcolor.b);glVertex3f(seat_1[j+1]*C(j+1)/B,seat_1[j+1]*S(j+1)/B,(-200+2.0*(i-1))/B);seatcolor=tucolor(seat_2[j+1]);glColor3f(seatcolor.r,seatcolor.g,seatcolor.b);glVertex3f(seat_2[j+1]*C(j+1)/B,seat_2[j+1]*S(j+1)/B,(-200+2.0*i)/B);seatcolor=tucolor(seat_2[j]);glColor3f(seatcolor.r,seatcolor.g,seatcolor.b);glVertex3f(seat_2[j]*C(j)/B,seat_2[j]*S(j)/B,(-200+2.0*i)/B); //第二个三角glEnd();}for(k=0;k<181;k++){seat_1[k]=seat_2[k];}
//      Sleep(20);}fclose(fp);fp=NULL;
}
void myDisplay()
{glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0, 0.0, 0.0); //画笔红色glLoadIdentity();  //加载单位矩阵  gluLookAt(0.0, 0.0,10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);glRotatef(rote, 0.0f, 1.0f, 0.0f);//glRotatef(anglex,1.0,0.0,0.0);glRotatef(angley,0.0,1.0,0.0);glRotatef(anglez,0.0,0.0,0.0);caculate_seat();rote += roate;glutSwapBuffers();//交换缓冲区,使绘制的图形得以展示
}
void reshape(int w, int h)
{glViewport(0, 0, (GLsizei)w, (GLsizei)h);glMatrixMode(GL_PROJECTION);//将当前矩阵设置为单位矩阵glLoadIdentity();//模型变换和视图变换gluPerspective(30.0, (GLfloat)w / (GLfloat)h, 1.0, 20.0);//类似眼睛,第一个参数为角度,决定能睁多大,第二个看到的最近距离第三个为最远距离glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);//前三个参数表示了观察点的位置,\//中间表示观察观察目标的位置,最后三个表示从(000)到(xyz)的直线,表示了观察者认为的"上"
}
void mouse(int button, int state, int x, int y)
{if (button == GLUT_LEFT_BUTTON)//左键{if (state == GLUT_DOWN)//按下{roate = 0;rote = 0;oldx = x;//当左键按下时记录鼠标坐标  oldy = y;  }   }if (button == GLUT_RIGHT_BUTTON){if (state == GLUT_DOWN){roate += 0.5f;  }}
}
void motion(int x, int y)
{GLint deltax = oldx - x;GLint deltay = oldy - y;anglex  += 360 * (GLfloat)deltax / (GLfloat)WinW;//根据屏幕上鼠标滑动的距离来设置旋转的角度  angley += 360 * (GLfloat)deltay / (GLfloat)WinH;anglez += 360 * (GLfloat)deltay / (GLfloat)WinH;oldx = x;//记录此时的鼠标坐标,更新鼠标坐标  oldy = y;//若是没有这两句语句,滑动时旋转会变得不可控  glutPostRedisplay();//标记当前窗口需要重新绘制,通过glutMainLoop下一次循环,窗口将被回调重新显示glutPostRedisplay();
}
int main(int argc, char*argv[])
{glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB); glutInitWindowPosition(200, 100);glutInitWindowSize(600, 600);glutCreateWindow("TUBE SHOW");init();glutDisplayFunc(&myDisplay);glutReshapeFunc(reshape);//用于注册窗口大小改变这一事件发生时GLUT将调用的函数glutMouseFunc(mouse);//用于注册键盘和鼠标事件发生时的回调函数glutMotionFunc(motion);//注册鼠标移动事件的回调函数,人机交互处理glutIdleFunc(&myDisplay);//在键盘按下时作某事glutMainLoop();//事件处理函数,直至程序结束,点x关闭为结束标志return 0;
}  
数据模拟(可导入txt文件中):
32.000  32.000  32.000  32.000  42.000  32.000
32.000  33.564  32.000  32.000  41.877  32.000
32.000  35.090  32.000  32.000  41.511  32.000
32.000  36.540  32.000  32.000  40.910  32.000
32.000  37.878  32.000  32.000  40.090  32.000
32.000  39.071  32.000  32.000  39.071  32.000
32.000  40.090  32.000  32.000  37.878  32.000
32.000  40.910  32.000  32.000  36.540  32.000
32.000  41.511  32.000  32.000  35.090  32.000
32.000  41.877  32.000  32.000  33.564  32.000
32.000  42.000  32.000  32.000  32.000  32.000
32.000  41.877  32.000  32.000  30.436  32.000
32.000  41.511  32.000  32.000  28.910  32.000
32.000  40.910  32.000  32.000  27.460  32.000
32.000  40.090  32.000  32.000  26.122  32.000
32.000  39.071  32.000  32.000  24.929  32.000
32.000  37.878  32.000  32.000  23.910  32.000
32.000  36.540  32.000  32.000  23.090  32.000
32.000  35.090  32.000  32.000  22.489  32.000
32.000  33.564  32.000  32.000  22.123  32.000
32.000  32.000  32.000  32.000  22.000  32.000
32.000  30.436  32.000  32.000  22.123  32.000
32.000  28.910  32.000  32.000  22.489  32.000
32.000  27.460  32.000  32.000  23.090  32.000
32.000  26.122  32.000  32.000  23.910  32.000
32.000  24.929  32.000  32.000  24.929  32.000
32.000  23.910  32.000  32.000  26.122  32.000
32.000  23.090  32.000  32.000  27.460  32.000
32.000  22.489  32.000  32.000  28.910  32.000
32.000  22.123  32.000  32.000  30.436  32.000
32.000  22.000  32.000  32.000  32.000  32.000
32.000  22.123  32.000  32.000  33.564  32.000
32.000  22.489  32.000  32.000  35.090  32.000
32.000  23.090  32.000  32.000  36.540  32.000
32.000  23.910  32.000  32.000  37.878  32.000
32.000  24.929  32.000  32.000  39.071  32.000
32.000  26.122  32.000  32.000  40.090  32.000
32.000  27.460  32.000  32.000  40.910  32.000
32.000  28.910  32.000  32.000  41.511  32.000
32.000  30.436  32.000  32.000  41.877  32.000
32.000  32.000  32.000  32.000  42.000  32.000
32.000  33.564  32.000  32.000  41.877  32.000
32.000  35.090  32.000  32.000  41.511  32.000
32.000  36.540  32.000  32.000  40.910  32.000
32.000  37.878  32.000  32.000  40.090  32.000
32.000  39.071  32.000  32.000  39.071  32.000
32.000  40.090  32.000  32.000  37.878  32.000
32.000  40.910  32.000  32.000  36.540  32.000
32.000  41.511  32.000  32.000  35.090  32.000
32.000  41.877  32.000  32.000  33.564  32.000
32.000  42.000  32.000  32.000  32.000  32.000
32.000  41.877  32.000  32.000  30.436  32.000
32.000  41.511  32.000  32.000  28.910  32.000
32.000  40.910  32.000  32.000  27.460  32.000
32.000  40.090  32.000  32.000  26.122  32.000
32.000  39.071  32.000  32.000  24.929  32.000
32.000  37.878  32.000  32.000  23.910  32.000
32.000  36.540  32.000  32.000  23.090  32.000
32.000  35.090  32.000  32.000  22.489  32.000
32.000  33.564  32.000  32.000  22.123  32.000
32.000  32.000  32.000  32.000  22.000  32.000
32.000  30.436  32.000  32.000  22.123  32.000
32.000  28.910  32.000  32.000  22.489  32.000
32.000  27.460  32.000  32.000  23.090  32.000
32.000  26.122  32.000  32.000  23.910  32.000
32.000  24.929  32.000  32.000  24.929  32.000
32.000  23.910  32.000  32.000  26.122  32.000
32.000  23.090  32.000  32.000  27.460  32.000
32.000  22.489  32.000  32.000  28.910  32.000
32.000  22.123  32.000  32.000  30.436  32.000
32.000  22.000  32.000  32.000  32.000  32.000
32.000  22.123  32.000  32.000  33.564  32.000
32.000  22.489  32.000  32.000  35.090  32.000
32.000  23.090  32.000  32.000  36.540  32.000
32.000  23.910  32.000  32.000  37.878  32.000
32.000  24.929  32.000  32.000  39.071  32.000
32.000  26.122  32.000  32.000  40.090  32.000
32.000  27.460  32.000  32.000  40.910  32.000
32.000  28.910  32.000  32.000  41.511  32.000
32.000  30.436  32.000  32.000  41.877  32.000
32.000  32.000  32.000  32.000  42.000  32.000
32.000  33.564  32.000  32.000  41.877  32.000
32.000  35.090  32.000  32.000  41.511  32.000
32.000  36.540  32.000  32.000  40.910  32.000
32.000  37.878  32.000  32.000  40.090  32.000
32.000  39.071  32.000  32.000  39.071  32.000
32.000  40.090  32.000  32.000  37.878  32.000
32.000  40.910  32.000  32.000  36.540  32.000
32.000  41.511  32.000  32.000  35.090  32.000
32.000  41.877  32.000  32.000  33.564  32.000
32.000  42.000  32.000  32.000  32.000  32.000
32.000  41.877  32.000  32.000  30.436  32.000
32.000  41.511  32.000  32.000  28.910  32.000
32.000  40.910  32.000  32.000  27.460  32.000
32.000  40.090  32.000  32.000  26.122  32.000
32.000  39.071  32.000  32.000  24.929  32.000
32.000  37.878  32.000  32.000  23.910  32.000
32.000  36.540  32.000  32.000  23.090  32.000
32.000  35.090  32.000  32.000  22.489  32.000
32.000  33.564  32.000  32.000  22.123  32.000
32.000  32.000  32.000  32.000  22.000  32.000
32.000  30.436  32.000  32.000  22.123  32.000
32.000  28.910  32.000  32.000  22.489  32.000
32.000  27.460  32.000  32.000  23.090  32.000
32.000  26.122  32.000  32.000  23.910  32.000
32.000  24.929  32.000  32.000  24.929  32.000
32.000  23.910  32.000  32.000  26.122  32.000
32.000  23.090  32.000  32.000  27.460  32.000
32.000  22.489  32.000  32.000  28.910  32.000
32.000  22.123  32.000  32.000  30.436  32.000
32.000  22.000  32.000  32.000  32.000  32.000
32.000  22.123  32.000  32.000  33.564  32.000
32.000  22.489  32.000  32.000  35.090  32.000
32.000  23.090  32.000  32.000  36.540  32.000
32.000  23.910  32.000  32.000  37.878  32.000
32.000  24.929  32.000  32.000  39.071  32.000
32.000  26.122  32.000  32.000  40.090  32.000
32.000  27.460  32.000  32.000  40.910  32.000
32.000  28.910  32.000  32.000  41.511  32.000
32.000  30.436  32.000  32.000  41.877  32.000
32.000  32.000  32.000  32.000  42.000  32.000
32.000  33.564  32.000  32.000  41.877  32.000
32.000  35.090  32.000  32.000  41.511  32.000
32.000  36.540  32.000  32.000  40.910  32.000
32.000  37.878  32.000  32.000  40.090  32.000
32.000  39.071  32.000  32.000  39.071  32.000
32.000  40.090  32.000  32.000  37.878  32.000
32.000  40.910  32.000  32.000  36.540  32.000
32.000  41.511  32.000  32.000  35.090  32.000
32.000  41.877  32.000  32.000  33.564  32.000
32.000  42.000  32.000  32.000  32.000  32.000
32.000  41.877  32.000  32.000  30.436  32.000
32.000  41.511  32.000  32.000  28.910  32.000
32.000  40.910  32.000  32.000  27.460  32.000
32.000  40.090  32.000  32.000  26.122  32.000
32.000  39.071  32.000  32.000  24.929  32.000
32.000  37.878  32.000  32.000  23.910  32.000
32.000  36.540  32.000  32.000  23.090  32.000
32.000  35.090  32.000  32.000  22.489  32.000
32.000  33.564  32.000  32.000  22.123  32.000
32.000  32.000  32.000  32.000  22.000  32.000
32.000  30.436  32.000  32.000  22.123  32.000
32.000  28.910  32.000  32.000  22.489  32.000
32.000  27.460  32.000  32.000  23.090  32.000
32.000  26.122  32.000  32.000  23.910  32.000
32.000  24.929  32.000  32.000  24.929  32.000
32.000  23.910  32.000  32.000  26.122  32.000
32.000  23.090  32.000  32.000  27.460  32.000
32.000  22.489  32.000  32.000  28.910  32.000
32.000  22.123  32.000  32.000  30.436  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000
32.000  32.000  32.000  32.000  32.000  32.000  

拉格朗日插值函数原理

使用OpenGL画出一个三维管道模型相关推荐

  1. 使用OpenGL画出四边形不完整的解决

    记录一个使用OpenGL做实验时遇到的小坑. 问题描述: 想要使用OpenGL画一个正方体,效果如下: 其实现方式是通过三维坐标分别画出它的每个面 于是我们使用以下代码来画出一个正方形平面: glBe ...

  2. php绘制一个三角形,如何利用css或html5画出一个三角形?两种不同的制作三角形方法(代码实例)...

    我们在平时的前端开发的时候,有时候是需要一些小图形来丰富一下页面效果,比如:下拉列表的倒三角图形.那么这样的一个三角形是如何制作出来的,本章给大家介绍如何利用css或html画出一个三角形?两种不同的 ...

  3. 用HTML+CSS画出一个同心圆

    参加web前端校招的同学们经常会遇到这样的面试题:用HTML+CSS画出一个同心圆. 例如: 这道题主要考验的是基础盒模型布局能力和倒圆角属性的巧用. 1.html代码 [html] view pla ...

  4. h5画三角形_如何利用css或html5画出一个三角形?两种不同的制作三角形方法(代码实例)...

    我们在平时的前端开发的时候,有时候是需要一些小图形来丰富一下页面效果,比如:下拉列表的倒三角图形.那么这样的一个三角形是如何制作出来的,本章给大家介绍如何利用css或html画出一个三角形?两种不同的 ...

  5. 运用html画一个三角形,利用css或html5画出一个三角形的方法

    利用css或html5画出一个三角形的方法 发布时间:2020-09-14 14:49:22 来源:亿速云 阅读:83 作者:小新 这篇文章主要介绍利用css或html5画出一个三角形的方法,文中介绍 ...

  6. python中词云图怎样变成特殊图案_如何利用python画出一个多变的词云图?(1)...

    问题描述: 如何利用python画出一个多变的词云图? 解决方法:import numpy as np import matplotlib import matplotlib.pyplot as pl ...

  7. [html] 你能否画出一个0.5px的直线?

    [html] 你能否画出一个0.5px的直线? 通过scale(0.5)来实现 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌谣一起通关 ...

  8. [html] 使用svg画出一个矩形

    [html] 使用svg画出一个矩形 <svg width="400" height="200" viewbox="0 0 2000 1000& ...

  9. [css] 用CSS画出一个任意角度的扇形,可以写多种实现的方法

    [css] 用CSS画出一个任意角度的扇形,可以写多种实现的方法 先画一个圆,外加两个绝对定位的半圆 扇形可以通过两个半圆作为遮罩旋转来露出相应的角度实现 这只能切出180°以内的扇形 超过180°的 ...

最新文章

  1. 威纶通触摸屏与mysql_威纶通 与 信捷XC\XD系列PLC 通讯
  2. 为什么大多数同学宁愿吃学习的苦,也不愿意尝思考的痛?
  3. R学习笔记:运行时间记录
  4. JSP简介及入门(含Eclipse for Java EE及Tomcat的配置)
  5. Web - JSON基础讲解
  6. Linux命令学习总结(超详细)
  7. mdt 计算机名_MDT配置数据库
  8. 技术帝,教你认识海思芯片及ARM芯片技术科普
  9. Building package xxx:xxx-windows failed with: BUILD_FAILED
  10. c语言 牛顿方法计算平方根,sqrt()平方根计算函数的实现2——牛顿迭代法
  11. u盘启动会进入w ndows安装程序,u启动一键u盘安装Ghost Win7系统教程_u启动
  12. Acwing-4656. 技能升级
  13. LabVIEW FPGA PCIe开发讲解-7.1节:FPGA PCIe/PXIe基础知识和概念概述
  14. python提取cad中的文字_[python]提取PPT中的文字(包括图片中的文字)
  15. windows10 该值受安全引导策略保护,无法进行修改或删除。禁用驱动程序强制签名
  16. 公司账号服务单点登录到gitlab
  17. 7-191 百钱百鸡
  18. 地理分布团队的敏捷生命周期
  19. 计算机网络题简单建设校园网络,计算机网络课程设计—校园网络构建方案设计和实现.doc...
  20. C#中e.Cancel,e.Handled的区别与应用

热门文章

  1. 运营日记:营销推广模式
  2. 【愚公系列】2022年02月 微信小程序-Behavior
  3. 工信部意见:国产“太空级”操作系统投放民用市场
  4. 立等可取:工具定制让Oracle优化变得更简单快捷
  5. 聊聊Python的一个彩蛋:Python之禅
  6. python中的split、rsplit、splitlines
  7. 二叉树的相关操作(二)
  8. 挑选同城外卖系统时,配送功能是关键,系统该拥有哪些配送模式?
  9. vue之前台请求特定商品数据展示+后台PHP处理后台数据(实战)
  10. win10计算机使用痕迹,win10系统彻底清除电脑使用痕迹的操作方法