5
我想找到代數重建方法的權重矩陣。爲此我必須找到與網格的交線。我可以找到直線與直線的交點,但我必須存儲相交的線段網格編號。所以假設如果在網格中第一個平方不與網格相交,那麼將零置於權重矩陣的第一個元素上。 這裏代碼我試圖爲線相交:如何在matlab中得到直線矩形相交線段
ak = 3:6
aka = 3:6
x = zeros(size(aka))
y = zeros(size(ak))
for k = 1:length(ak)
line([ak(1) ak(end)], [aka(k) aka(k)],'color','r')
end
% Vertical grid
for k = 1:length(aka)
line([ak(k) ak(k)], [aka(1) aka(end)],'color','r')
end
hold on;
X =[0 15.5]
Y = [2.5 8.5]
m = (Y(2)-Y(1))/(X(2)-X(1)) ;
c = 2.5 ;
plot(X,Y)
axis([0 10 0 10])
axis square
% plotting y intercept
for i = 1:4
y(i) = m * ak(i) + c
if y(i)<2 || y(i)>6
y(i) = 0
end
end
% plotting x intercept
for i = 1:4
x(i) = (y(i) - c)/m
if x(i)<2 || x(i)>6
x(i) = 0
end
end
z = [x' y']
問題的說明:
我有一條線,由參數m, h
,其中y = m*x + h
此線變爲在網格定義(即像素)。對於網格的每個正方形(a, b)
(即方形[a, a+1]x[b, b+1]
),我想確定,如果給定的線是否穿過此方塊,如果是,則在方塊中的線段的長度是多少爲。這樣我就可以構造代數重構方法所必需的權重矩陣。
我不知道你需要什麼幫助。你的代碼繪製了一個線條和一個gridsize 1從3到6的網格。並返回在3,4,5和6的y值。你想要什麼作爲最終結果,什麼是確切的問題? – 2014-09-25 08:42:28
@TheMinion我有一條線,由參數m,h定義,其中 y = m * x + h 這條線穿過網格(即像素)。對於網格的每個正方形(a,b)(即正方形[a,a + 1] x [b,b + 1]),我想確定給定的直線是否穿過這個正方形,如果是,廣場中的分段的長度是多少? 這樣我就可以構造代數重建方法所必需的權重矩陣。 – 2014-09-25 13:00:22
@ParthPatel考慮將問題的標題更改爲「如何在matlab中獲取線矩形相交線段」。我在下面回答你的問題,並舉例說明如何去做。 – DontCareBear 2015-09-12 01:02:15