当前位置: 首页 > news >正文

网站建设外包排名厂家招代理商免费铺货

网站建设外包排名,厂家招代理商免费铺货,廊坊关键词seo排名网站,凡科建站快车官网要实现3D空间中的点坐标转换为屏幕二维点坐标#xff0c;需要进行透视变换和投影变换。以下是一些基本的思路和示例代码#xff0c;可以用于实现主视图、侧视图、俯视图、正等轴投影。 1. 主视图投影 主视图投影是指以一个点作为视点#xff0c;从一个方向观察物体#x…要实现3D空间中的点坐标转换为屏幕二维点坐标需要进行透视变换和投影变换。以下是一些基本的思路和示例代码可以用于实现主视图、侧视图、俯视图、正等轴投影。 1. 主视图投影 主视图投影是指以一个点作为视点从一个方向观察物体投影到一个平面上。通常情况下主视图的观察方向是从正面也就是Z轴负方向。投影平面一般是平行于X-Y平面。 具体实现可以通过以下步骤完成 定义观察点坐标和投影平面距离对3D坐标进行透视变换对透视变换后的坐标进行投影变换将投影后的坐标映射到屏幕上 示例代码 int x_2d (int) (x_3d / (z_3d - view_point_z) * distance_to_projection_plane); int y_2d (int) (y_3d / (z_3d - view_point_z) * distance_to_projection_plane);2. 侧视图投影 侧视图投影是指以一个点作为视点从一个方向观察物体投影到一个平面上。通常情况下侧视图的观察方向是从侧面也就是X轴正方向。投影平面一般是平行于Y-Z平面。 具体实现可以通过以下步骤完成 定义观察点坐标和投影平面距离对3D坐标进行透视变换对透视变换后的坐标进行投影变换将投影后的坐标映射到屏幕上 示例代码 int x_2d (int) (y_3d / (x_3d - view_point_x) * distance_to_projection_plane); int y_2d (int) (z_3d / (x_3d - view_point_x) * distance_to_projection_plane);3. 俯视图投影 俯视图投影是指以一个点作为视点从一个方向观察物体投影到一个平面上。通常情况下俯视图的观察方向是从上方也就是Y轴正方向。投影平面一般是平行于X-Z平面。 具体实现可以通过以下步骤完成 定义观察点坐标和投影平面距离对3D坐标进行透视变换对透视变换后的坐标进行投影变换将投影后的坐标映射到屏幕上以下是一个简单的示例代码用于将3D空间中的点坐标转化为屏幕二维点坐标。这里包括了主视图、侧视图、俯视图、正等轴投影的实现。 #include stdio.h #include stdlib.h #include math.h#define SCREEN_WIDTH 640 #define SCREEN_HEIGHT 480typedef struct {double x, y, z; } Point3D;typedef struct {int x, y; } Point2D;void project_ortho(Point3D point_3d, Point2D *point_2d, double distance_to_projection_plane) {point_2d-x (int) point_3d.x;point_2d-y (int) point_3d.y; }void project_isometric(Point3D point_3d, Point2D *point_2d, double distance_to_projection_plane) {point_2d-x (int) ((point_3d.x - point_3d.z) * cos(30 * M_PI / 180));point_2d-y (int) ((point_3d.y - (point_3d.x point_3d.z) * sin(30 * M_PI / 180)) * cos(30 * M_PI / 180)); }void project_main(Point3D point_3d, Point2D *point_2d, Point3D view_point, double distance_to_projection_plane) {double z_3d point_3d.z - view_point.z;point_2d-x (int) (point_3d.x - view_point.x) * distance_to_projection_plane / z_3d SCREEN_WIDTH / 2;point_2d-y (int) (point_3d.y - view_point.y) * distance_to_projection_plane / z_3d SCREEN_HEIGHT / 2; }void project_side(Point3D point_3d, Point2D *point_2d, Point3D view_point, double distance_to_projection_plane) {double x_3d point_3d.x - view_point.x;point_2d-x (int) (point_3d.y - view_point.y) * distance_to_projection_plane / x_3d SCREEN_WIDTH / 2;point_2d-y (int) (point_3d.z - view_point.z) * distance_to_projection_plane / x_3d SCREEN_HEIGHT / 2; }void project_top(Point3D point_3d, Point2D *point_2d, Point3D view_point, double distance_to_projection_plane) {double y_3d point_3d.y - view_point.y;point_2d-x (int) (point_3d.x - view_point.x) * distance_to_projection_plane / y_3d SCREEN_WIDTH / 2;point_2d-y (int) (point_3d.z - view_point.z) * distance_to_projection_plane / y_3d SCREEN_HEIGHT / 2; }int main() {// Define the 3D points of a cubePoint3D cube[8] {{-50, -50, -50},{50, -50, -50},{50, 50, -50},{-50, 50, -50},{50, -50, 50},{50, 50, 50},{-50, 50, 50},{-50, -50, 50},};// Define the view point for the main, side, and top projectionsPoint3D main_view_point {0, 0, 200};Point3D side_view_point {-200, 0, 0};Point3D top_view_point {0, 200, 0};// Define the distance from the projection plane for the orthogonal and isometric projectionsdouble distance_to_ortho_projection_plane 200;double distance_to_isometric_projection_plane 200 / cos(30 * M_PI / 180);// Project the 3D points to 2D points for each projectionPoint2D main_projection[8];Point2D side_projection[8];Point2D top_projection[8];Point2D ortho_projection[8];Point2D iso_projection[8];int i;for (i 0; i 8; i) {project_main(cube[i], main_projection[i], main_view_point, distance_to_ortho_projection_plane);project_side(cube[i], side_projection[i], side_view_point, distance_to_ortho_projection_plane);project_top(cube[i], top_projection[i], top_view_point, distance_to_ortho_projection_plane);project_ortho(cube[i], ortho_projection[i], distance_to_ortho_projection_plane);project_isometric(cube[i], iso_projection[i], distance_to_isometric_projection_plane);}// Draw the 2D projections// ...// Your code to draw the projections goes here// ...return 0; }
http://www.w-s-a.com/news/852821/

相关文章:

  • 网站设计登录界面怎么做网站突然排名没了
  • wordpress 人物页面seo优化公司信
  • 高端网站建设报价网站建设需要硬件设备
  • 做国际物流在哪些网站找客户营销qq怎么申请
  • 网站做推广百度好还是360好科技厅
  • 网站开发工具排名万户网络建一个网站虽要多少钱
  • 用凡科做的网站要钱吗WordPress城市切换
  • 制作一个门户网站需要多少钱营销型网站特征
  • 手机网站 多html中国建设银行网站包头分行
  • 哪个网站做免费广告好招牌图片效果图设计制作
  • 网站建设优化服务机构苏州市做网站
  • 网站如何优化流程企业网站管理系统视频教程
  • 我想克隆个网站 怎么做贵州住房和城乡建设厅官网
  • 网站建设项目前景上海今天新闻综合频道
  • 做网站推销的如何谈客户wordpress怎么做商城
  • 摄影素材库网站服装页面设计的网站
  • 如何用国外网站做头条做个游戏app的费用大概多少
  • 网站 形象入口页福州网站建设网络公司排名
  • 免费下载教学设计的网站送网站建设管理信息内容审核制度
  • 外贸专业网站的公司百度旗下13个app
  • 物理组简介 网站建设高师院校语言类课程体系改革与建设 教学成果奖申报网站
  • 爱网站无法登录怎么回事手表网
  • 网站建设公司现在还挣钱吗山西手动网站建设推荐平台
  • 重庆建设工程交易信息网站网站制作公司起名
  • 东莞寮步做网站的有吗企业宣传册制作
  • 做网站的软件是哪个上蔡做网站
  • 前后端分离实现网站开发紧急通知网页升级
  • 河北专业网站建设公司推荐佛山小程序开发平台
  • 网站开发强制开启浏览器极速模式建设网站有什么风险
  • 360全景网站建设常州专业网站建设公司咨询