我知道我可以isnan用来检查个别元素,例如
for i=1:m
for j=1:n
if isnan(A(i,j))
do something
end
end
end
Run Code Online (Sandbox Code Playgroud)
但是,我想做的是
if any(isnan(A))
do something
end
Run Code Online (Sandbox Code Playgroud)
当我试图这样做时,它不会进入参数,因为它被认为是假的.如果我只是打字any(isnan(A)),我就得到1 0 1.那我该怎么做?
我从一个坐标系开始,沿 Z 轴的一个点由 P1 = [0 0 h] 和 XY 平面中的一个点 P2 = [h*tan(A), h*tan(B), 0] 给出然后,我求解垂直于从 P2 指向 P1 的向量的平面的方程,因此,向量 = P1 - P2。我得到的平面方程如下:
X*h*tan(A)-Y*h*tan(B)+Z*h = 0。
现在我得到了相对于这个平面的四个点,这个新平面的原点与原始平面中的 P2 相同。
这四个点构成一个矩形,它们是:
[L*tan(C), L*tan(D), 0]
[L*tan(C), -L*tan(D), 0]
[-L*tan(C), -L*tan(D), 0]
[-L*tan(C), L*tan(D), 0]
Run Code Online (Sandbox Code Playgroud)
我将如何将这些点转换为原始坐标系?我知道这涉及到平移和旋转,当我查看问题时,我只能发现平移和旋转的情况是分开的,而没有一个是两者的组合。
旋转变换究竟是如何工作的?如果我已经知道它绕 X 轴旋转 A 度,绕 Y 轴旋转 B 度怎么办?在这种情况下,我可以做简单的触发来回溯该值吗?或者它不是那么简单,我必须围绕它必须旋转的轴旋转它才能匹配回原始坐标系?
MATLAB 中是否有一个函数,我可以插入 3 个点来定义一个坐标系,另外 3 个点为第二个坐标系,然后给我转换矩阵?
如果我的措辞不清楚,请告诉我,这个 3-D 问题很难想象,我似乎无法弄清楚如何为它编写所有的三角函数,并想在数学上尝试......但是如果你通过有机会知道一个更简单的解决方案,更直接,请提出建议!
我试图弄清楚如何使工具提示出现在由框包围的画布区域上。理想情况下,如果用户将鼠标悬停在点上并且误差范围在 10 像素以内,就会出现工具提示。
import tkinter as tk;
from idlelib.ToolTip import ToolTip;
windowWidth = 960;
windowHeight = 720;
canvasWidth = windowWidth - 10;
canvasHeight = windowHeight - 10;
''' Main Window '''
root = tk.Tk();
root.resizable(width=False, height=False);
root.geometry('{}x{}'.format(windowWidth, windowHeight));
root.title('Sample');
''' Canvas '''
canvas = tk.Canvas(root,
width = canvasWidth,
height = canvasHeight,
bg = 'grey');
canvas.pack(side = tk.RIGHT, padx = 5);
xo = canvasWidth / 2
yo = canvasHeight / 2;
point = canvas.create_rectangle(xo - 1, yo - 1, xo + …Run Code Online (Sandbox Code Playgroud)