找回密码
 注册
查看: 739|回复: 0

R语言 aroma.light包 distanceBetweenLines()函数中文帮助文档(中英文对照)

[复制链接]
发表于 2012-2-25 12:04:39 | 显示全部楼层 |阅读模式
distanceBetweenLines(aroma.light)
distanceBetweenLines()所属R语言包:aroma.light

                                        Finds the shortest distance between two lines
                                         发现两条线之间的最短距离

                                         译者:生物统计家园网 机器人LoveR

描述----------Description----------

Finds the shortest distance between two lines.
发现两条线之间的最短距离。

Consider the two lines
考虑到两行

x(s) = a_x + b_x*s and y(t) = a_y + b_y*t
x(s) = a_x + b_x*s和y(t) = a_y + b_y*t

in an K-space where the offset and direction vectors are a_x and b_x (in R^K) that define the line x(s) (s is a scalar). Similar for the line y(t). This function finds the point (s,t) for which |x(s)-x(t)| is minimal.
在K空间偏移和方向vector是a_x和b_x(R^K)定义行x(s)(s 是一个标量)。类似行y(t)。此函数查找(s,t)点|x(s)-x(t)|是最小的。


用法----------Usage----------





参数----------Arguments----------

参数:ax,bx
Offset and direction vector of length K for line z_x.
偏移和方向vector行z_x长度为k。


参数:ay,by
Offset and direction vector of length K for line z_y.
偏移和方向vector行z_y长度为k。


参数:...
Not used.
不使用。


值----------Value----------

Returns the a list containing
返回list包含


参数:ax,bx
The given line x(s).
给定的行x(s)。


参数:ay,by
The given line y(t).
给定的行y(t)。


参数:s,t
The values of s and t such that |x(s)-y(t)| is minimal.
s和t|x(s)-y(t)|是最小的值。


参数:xs,yt
The values of x(s) and y(t) at the optimal point (s,t).
x(s)和y(t)最佳点(s,t)的值。


参数:distance
The distance between the lines, i.e. |x(s)-y(t)| at the optimal point (s,t).
线之间的距离,即|x(s)-y(t)|在最佳点(s,t)。


作者(S)----------Author(s)----------


Henrik Bengtsson (<a href="http://www.braju.com/R/">http://www.braju.com/R/</a>)



参考文献----------References----------

Lines in n-Space, September 2001, Advisor Dennis Merino.<br> [2] Dan Sunday, Distance between Lines and Segments with their Closest Point of Approach, http://geometryalgorithms.com/Archive/algorithm_0106/.<br>

举例----------Examples----------


for (zzz in 0) {

# This example requires plot3d() in R.basic [http://www.braju.com/R/][这个例子需要plot3d()R.basic [http://www.braju.com/R/]]
if (!require(R.basic)) break

layout(matrix(1:4, nrow=2, ncol=2, byrow=TRUE))

############################################################[################################################## #########]
# Lines in two-dimensions[线条在两个维度]
############################################################[################################################## #########]
x <- list(a=c(1,0), b=c(1,2))
y <- list(a=c(0,2), b=c(1,1))
fit <- distanceBetweenLines(ax=x$a, bx=x$b, ay=y$a, by=y$b)

xlim <- ylim <- c(-1,8)
plot(NA, xlab="", ylab="", xlim=ylim, ylim=ylim)

# Highlight the offset coordinates for both lines[突出两条线的偏移坐标]
points(t(x$a), pch="+", col="red")
text(t(x$a), label=expression(a[x]), adj=c(-1,0.5))
points(t(y$a), pch="+", col="blue")
text(t(y$a), label=expression(a[y]), adj=c(-1,0.5))

v <- c(-1,1)*10;
xv <- list(x=x$a[1]+x$b[1]*v, y=x$a[2]+x$b[2]*v)
yv <- list(x=y$a[1]+y$b[1]*v, y=y$a[2]+y$b[2]*v)

lines(xv, col="red")
lines(yv, col="blue")

points(t(fit$xs), cex=2.0, col="red")
text(t(fit$xs), label=expression(x(s)), adj=c(+2,0.5))
points(t(fit$yt), cex=1.5, col="blue")
text(t(fit$yt), label=expression(y(t)), adj=c(-1,0.5))
print(fit)


############################################################[################################################## #########]
# Lines in three-dimensions[线条在三维空间]
############################################################[################################################## #########]
x &lt;- list(a=c(0,0,0), b=c(1,1,1))  # The 'diagonal'[“对角线”]
y &lt;- list(a=c(2,1,2), b=c(2,1,3))  # A 'fitted' line[一个装行]
fit <- distanceBetweenLines(ax=x$a, bx=x$b, ay=y$a, by=y$b)

xlim <- ylim <- zlim <- c(-1,3)
dummy <- t(c(1,1,1))*100;

# Coordinates for the lines in 3d[3D坐标]
v <- seq(-10,10, by=1);
xv <- list(x=x$a[1]+x$b[1]*v, y=x$a[2]+x$b[2]*v, z=x$a[3]+x$b[3]*v)
yv <- list(x=y$a[1]+y$b[1]*v, y=y$a[2]+y$b[2]*v, z=y$a[3]+y$b[3]*v)

for (theta in seq(30,140,length=3)) {
  plot3d(dummy, theta=theta, phi=30, xlab="", ylab="", zlab="",
                             xlim=ylim, ylim=ylim, zlim=zlim)

  # Highlight the offset coordinates for both lines[突出两条线的偏移坐标]
  points3d(t(x$a), pch="+", col="red")
  text3d(t(x$a), label=expression(a[x]), adj=c(-1,0.5))
  points3d(t(y$a), pch="+", col="blue")
  text3d(t(y$a), label=expression(a[y]), adj=c(-1,0.5))

  # Draw the lines[绘制线条]
  lines3d(xv, col="red")
  lines3d(yv, col="blue")

  # Draw the two points that are closest to each other[借鉴彼此最接近的两个点]
  points3d(t(fit$xs), cex=2.0, col="red")
  text3d(t(fit$xs), label=expression(x(s)), adj=c(+2,0.5))
  points3d(t(fit$yt), cex=1.5, col="blue")
  text3d(t(fit$yt), label=expression(y(t)), adj=c(-1,0.5))

  # Draw the distance between the two points[绘制两点之间的距离]
  lines3d(rbind(fit$xs,fit$yt), col="purple", lwd=2)
}

print(fit)

} # for (zzz in 0)[(0 ZZZ)]
rm(zzz)

转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。


注:
注1:为了方便大家学习,本文档为生物统计家园网机器人LoveR翻译而成,仅供个人R语言学习参考使用,生物统计家园保留版权。
注2:由于是机器人自动翻译,难免有不准确之处,使用时仔细对照中、英文内容进行反复理解,可以帮助R语言的学习。
注3:如遇到不准确之处,请在本贴的后面进行回帖,我们会逐渐进行修订。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2025-1-23 21:27 , Processed in 0.019600 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表