图形变换:绕任意轴旋转的数学原理

需积分: 1 0 下载量 187 浏览量 更新于2024-08-22 收藏 3.86MB PPT 举报
"本资源主要介绍了图形变换中的绕任意轴旋转变换,涉及数学基础,包括矢量、矩阵及其运算,特别关注了二维和三维图形变换。" 在计算机图形学中,图形变换是将物体在空间中的表示进行改变的重要手段。绕任意轴的旋转变换是一种常见的图形变换类型,它允许我们模拟物体围绕一个非坐标轴的旋转。这种变换的基本思路是首先通过数学方法使旋转轴与坐标轴对齐,进行旋转操作后,再将旋转轴恢复到原始位置。这样的处理方式能够简化计算,因为沿着坐标轴的旋转已经有着清晰的数学定义。 5.1章节中提到了变换的数学基础,这包括以下几个关键概念: 1. **矢量**:在空间中表示方向和大小的量,通常用箭头表示。在2D和3D空间中,矢量可以表示位置、速度、加速度等物理量。在变换中,矢量起着至关重要的作用,如位移、旋转和平移等操作都是基于矢量的。 2. **矢量的运算**: - **矢量加法**:两个矢量相加,结果是矢量的合成,头部对齐后,箭尾到箭头的连线构成新的矢量。 - **矢量数乘**:一个矢量乘以标量(数值),会改变矢量的大小,但不改变方向。 - **矢量点积**:两个矢量的点积等于它们的对应分量相乘后求和,结果是一个标量,表示两个矢量的投影关系和夹角。 - **矢量长度**:矢量的模,即矢量的大小,可以用勾股定理计算。 - **单位矢量**:长度为1的矢量,常用于表示方向。 - **矢量夹角**:两个矢量之间的角度,可以通过点积计算。 - **矢量叉积**:产生一个新的矢量,其方向垂直于原两矢量,并遵循右手定则,其模长等于两矢量的长度乘积与它们夹角的正弦值。 3. **矩阵**:矩阵是有序数组,用于表示线性变换。在二维和三维图形变换中,矩阵可以用来表示缩放、旋转、平移等操作。矩阵运算包括: - **加法**:相同尺寸的矩阵相加,每个对应元素相加。 - **数乘**:一个标量乘以矩阵,每个元素都乘以这个标量。 这些基本数学概念构成了图形变换的基础,特别是绕任意轴的旋转变换,通过矩阵表示的旋转矩阵可以方便地进行计算。在实际应用中,例如在游戏开发或3D建模软件中,绕任意轴的旋转变换能够实现复杂的空间动态效果。
2023-06-06 上传

SELECT t1.id, t1.[kh] AS '客户', t1.[lrsj] AS '录入时间', t1.[htbh] AS '合同编号', t1.[rq] AS '签订日期', t1.[htqsrq] AS '起始日期', t1.[htjzrq] AS '截止日期', t1.[zjey] AS '总金额', t1.[hjzld] AS '总吨数', t1.[lrsj] AS '创建时间', t1.[chpt] AS '撮合平台', CAST ( t1.[htwj] AS VARCHAR ( MAX ) ) AS '合同文件', STUFF( ( SELECT ',' + CONVERT ( VARCHAR, CASE WHEN ISNUMERIC( REPLACE( t2.ppcs, ',', '' ) ) = 1 THEN CAST ( REPLACE( t2.ppcs, ',', '' ) AS FLOAT ) END ) FROM uf_xsht_dt1 t2 WHERE t1.id = t2.mainid FOR XML PATH ( '' ) ), 1, 1, '' ) AS '品牌', STUFF( ( SELECT ' ' + CONVERT ( VARCHAR, CASE WHEN ISNUMERIC( REPLACE( t2.hsdjyd, ' ', '' ) ) = 1 THEN CAST ( REPLACE( t2.hsdjyd, ' ', '' ) AS FLOAT ) END ) FROM uf_xsht_dt1 t2 WHERE t1.id = t2.mainid FOR XML PATH ( '' ) ), 1, 1, '' ) AS '销售单价', (SELECT SUM ( sjfk ) from uf_xshksj2 WHERE cght=t1.id ) AS '实际已收', (SELECT SUM ( hkje ) from uf_xshksj2 WHERE cght=t1.id ) AS '已收货款', ( SELECT SUM( sjfk ) FROM uf_xshksj2 WHERE kxlx = 0 AND cght = t1.id ) AS '订金' FROM uf_xsht t1 INNER JOIN uf_xsht_dt1 t2 ON t1.id = t2.mainid LEFT JOIN uf_xshksj2 t3 ON t1.id = t3.cght GROUP BY t1.id, t1.[kh], t1.[lrsj], t1.[htbh], t1.[rq], t1.[htqsrq], t1.[htjzrq], t1.[zjey], t1.[hjzld], t1.[chpt], CAST ( t1.[htwj] AS VARCHAR ( MAX ) );中按ID查询计算收款比例‘已收比例’,当订金与已收货款的和小于总金额时,比例公式为已收货款除以总金额;否则为订金与已收货款求和再除以总金额

2023-07-13 上传

SELECT t1.id, t1.[kh] AS '客户', t1.[lrsj] AS '录入时间', t1.[htbh] AS '合同编号', t1.[rq] AS '签订日期', t1.[htqsrq] AS '起始日期', t1.[htjzrq] AS '截止日期', t1.[zjey] AS '总金额', t1.[hjzld] AS '总吨数', t1.[lrsj] AS '创建时间', t1.[chpt] AS '撮合平台', CAST ( t1.[htwj] AS VARCHAR ( MAX ) ) AS '合同文件', STUFF( ( SELECT ',' + CONVERT ( VARCHAR, CASE WHEN ISNUMERIC( REPLACE( t2.ppcs, ',', '' ) ) = 1 THEN CAST ( REPLACE( t2.ppcs, ',', '' ) AS FLOAT ) END ) FROM uf_xsht_dt1 t2 WHERE t1.id = t2.mainid FOR XML PATH ( '' ) ), 1, 1, '' ) AS '品牌', STUFF( ( SELECT ' ' + CONVERT ( VARCHAR, CASE WHEN ISNUMERIC( REPLACE( t2.hsdjyd, ' ', '' ) ) = 1 THEN CAST ( REPLACE( t2.hsdjyd, ' ', '' ) AS FLOAT ) END ) FROM uf_xsht_dt1 t2 WHERE t1.id = t2.mainid FOR XML PATH ( '' ) ), 1, 1, '' ) AS '销售单价', (SELECT SUM(sjfk) FROM uf_xshksj2 WHERE cght = t1.id) AS '实际已收', (SELECT SUM(hkje) FROM uf_xshksj2 WHERE cght = t1.id) AS '已收货款', (SELECT SUM(sjfk) FROM uf_xshksj2 WHERE kxlx = 0 AND cght = t1.id) AS '订金', CASE WHEN ((SELECT SUM(ISNULL(hkje, 0)) FROM uf_xshksj2 WHERE cght = t1.id) + (SELECT SUM(ISNULL(sjfk, 0)) FROM uf_xshksj2 WHERE kxlx = 0 AND cght = t1.id)) < t1.[zjey] THEN (SELECT SUM(ISNULL(hkje, 0)) FROM uf_xshksj2 WHERE cght = t1.id) / t1.[zjey] ELSE ((SELECT SUM(ISNULL(hkje, 0)) FROM uf_xshksj2 WHERE cght = t1.id) + (SELECT SUM(ISNULL(sjfk, 0)) FROM uf_xshksj2 WHERE kxlx = 0 AND cght = t1.id)) / t1.[zjey] END AS '已收比例' FROM uf_xsht t1 INNER JOIN uf_xsht_dt1 t2 ON t1.id = t2.mainid LEFT JOIN uf_xshksj2 t3 ON t1.id = t3.cght GROUP BY t1.id, t1.[kh], t1.[lrsj], t1.[htbh], t1.[rq], t1.[htqsrq], t1.[htjzrq], t1.[zjey], t1.[hjzld], t1.[chpt], CAST ( t1.[htwj] AS VARCHAR ( MAX ) );为什么只有第一个有数据

2023-07-14 上传