24小时热门版块排行榜    

CyRhmU.jpeg
查看: 284  |  回复: 2

沧桑谁的等待

新虫 (初入文坛)

[求助] 有限单元问题已有1人参与

将一个矩形剖分成M(行)*N(列)个有限单元,在矩形上下边界任给两点(xi,yi)、(xj,yj),怎么计算这两点连成的直线与任意剖分单元的交点?????一直没想明白,希望各位指点下,谢谢!!!!!!

有限单元问题
示意图.JPG
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

挑大粪的

新虫 (小有名气)

表示帮不上忙。。

[ 发自小木虫客户端 ]
2楼2014-12-06 14:30:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nagami

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
feixiaolin: 金币+20, 2014-4 优秀板油 2014-12-07 00:48:22
每个矩形可以由左下角和右上角的两个点唯一确定(x_low,x_high),
或者对调下,左上角和右下角表示。两则很容易相互转化;

剖分完后,每个矩形就确定了各自的点,针对直线的斜率k值,判断使用哪一种表示。

当k=0,和无穷,垂直水平情况,单独处理;
k<0,采用矩形的左下角和右上角表示;就是图片里的情况
k>0,左上角和右下角表示矩形;

以k<0为例,就是楼主图所示的直线。k>0类似
给定直线方程f(x)=0,计算f(x_low)*f(x_high)的值,分三种
1.如果>0,不相交,此外,f(x_low)>0,矩形在右侧,f(x_low)<0,矩形在直线左侧;
2.如果=0;说明只有一个点在线上,因为斜率k<0,
f(x_low),f(x_high)不同时为0,另一个的正负判断与直线的位置。
3.如果<0,说明直线与矩形内部相交。且只有两个交点,
怎么算交点呢:
矩形的两点表示,每点的横纵坐标各带入直线方程,计算出4各点。
有2个在矩形上,我们要求得,有2个在矩形外面(是相邻矩形的交点)
用Pythagorean sum,去计算点与矩形的距离,为0就是我们要求的交点。这样就从4个点筛选出2个来了。
女靠衣装;男靠金装
3楼2014-12-06 15:49:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 沧桑谁的等待 的主题更新
信息提示
请填处理意见