首页 > 编程语言 >matlab练习程序(Householder光线反射)

matlab练习程序(Householder光线反射)

时间:2022-09-18 13:56:43浏览次数:66  
标签:反射 练习 matlab plot3 ref Householder 向量

已知入射光线向量X和平面方程法向量w,可以通过Householder变换求出反射向量Y。

Householder变换公式如下:

那么反射向量Y=H*X

matlab代码如下:

clear all;close all;clc;

%plane:1*x+2*y+3*z = 0
w = [1 2 3]';
w = w / norm(w);

%line:[x=5t y=3t z=4t]
l = [5 3 4]';
l= l / norm(l);

[X,Y] = meshgrid(-1:0.1:1);
Z = (w(1)*X+w(2)*Y)/(-w(3));
mesh(X,Y,Z);

hold on;
t=-1:0.1:1;
x = w(1)*t;
y = w(2)*t;
z = w(3)*t;
plot3(x,y,z,'b');

x = l(1)*t;
y = l(2)*t;
z = l(3)*t;
plot3(x,y,z,'r');

H = eye(3) - 2*(w*w');  %householder变换
l_ref = H*l;

x = l_ref(1)*t;
y = l_ref(2)*t;
z = l_ref(3)*t;
plot3(x,y,z,'g');
axis equal;

结果如下:

标签:反射,练习,matlab,plot3,ref,Householder,向量
From: https://www.cnblogs.com/tiandsp/p/16704681.html

相关文章

  • java的数组基础练习题
    A建立一个50元素组成的数组把1-100的所有偶数放在数组里并显示。packagefuxi;publicclassw091604练习题数组{publicstaticvoidmain(String[]args){ //TO......
  • 代码练习
    date1=["高钾风化","高钾未风化","铅钡风化","铅钡未风化"];val=[1,2,5,10,20,30,50,100];fori=1:length(val)date2=val(i);dir="rand"+date2;mkdir(dir)......
  • 数据结构实验(二)递归函数练习
    6-1递归法求Fibonacci数列第n项的值这道题就是写一个简单的递归函数即可intfun(intn){if(n==1||n==2)return1;returnfun(n-1)+fun(n-2);}......
  • matlab数值计算
    matlab数值计算创建矩阵的方法规则:矩阵元素必须用[ ]扩起来如a=[1,2,3]矩阵元素必须用逗号或空格分隔如b=[4,5,6]在括号[ ]内矩阵的行与行之间必须用逗号分......
  • shell脚本练习
    直接上代码ps公司最后没有使用,因为权限问题#!/bin/bash#安装:mesa-libGLmesa-libEGLfontconfig-develyumInstall(){ foriinmesa-libGLmesa-libEGLfontconfig-d......
  • 第六章 6 函数-迭代器与生成器 练习题
    第六章6函数-迭代器与生成器练习题[基础知识]1说说python中装饰器、迭代器的用法;描述下dict的items()方法与iteritems()方法的不同;解答:装饰器:装饰器是指对函数......
  • 牛客网-SQL专项练习2
    ①从学生信息表(student)中提取姓名(name)列值为NULL的记录,SQL语句为:解析:注意不是只查name值,而是查name值为空的所有信息SQL语句为:SELECT*FROM studentWHEREnameisNU......
  • 牛客网-SQL专项练习1
    ①检索所有比“王华”年龄大的学生姓名、年龄和性别。SELECT语句:解析:第一步:先找到王华的年龄SELECTAGEFROMSWHRESN="王华";第二步:将第一步的结果作为条件进行......
  • matlab categorical
    categorical>>T=table({'chorong';'bomi';'hayong';'ty'},{'m';'m';'w';'m'},...)[32;30;28;27],[134;356;768;356],logical([1;0;0;1]),.........
  • Stream API的练习题
    题目:找出2011年发生的所有交易,并按交易额排序(从高到低)。交易员都在哪些不同的城市工作过?查找所有来自Cambridge的交易员,并按姓名排序。返回所有交易员的姓名字......