首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据向量的方向导出向量分量的函数

根据向量的方向导出向量分量的函数
EN

Stack Overflow用户
提问于 2019-09-15 08:55:47
回答 1查看 44关注 0票数 0

我正在尝试推导一个简单的函数,它分别指定分量c和e在y轴上的大小(分别)。给定一个从左到右过渡的向量,我想计算c的大小(Y的分量)相对于DF和DE之间的增量的大小,以及d的大小相对于CA和AB之间的增量的大小,因此大小是1:1的相关性。我需要它对所有六个转换都是有效的,这样Y轴上的值就可以指示结果的类型。也就是说,e绝对不同于c,e与c成反比。假设矢量穿过Y轴,我需要仍然能够量化c和e的大小,如图1所示。

看起来好像我只需要量化c(使用向量的起点,由此c与a成比例)和e(由start (CA/DF) +Δ计算得出的向量的终点,其中e与d成比例),我不需要指定整个向量(简单的直线)。end是简单的start +delta.我试着用python实现这一点,如下所示(带编号的参数链接到带编号的图(图中省略了4-6个)):

代码语言:javascript
复制
# delta = change from initial value to next value

# 1) start = -9, delta=18
# 2) start=-9, delta=8
# 3) start = 1, delta=8
# 4) start = -1, delta=-8 --ommitted
# 5) start = 9, delta=-8 --ommitted
# 6) start = 9, delta=-18 --ommitted

def calc_comp(start=-9, delta=8): # 2) implementation
   c = max((start+delta),0)
   e = min((start+delta),0) 
   return c, e

然而,这显然没有考虑到上面显示的所有情况,我不确定如何最好地实现这一点,同时考虑到所有可能的转换(6)关于如何最好地实现这一点的一些建议将是很好的,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-09-15 10:07:22

如果我理解您正在尝试做的事情,我认为以下方法应该有效:

代码语言:javascript
复制
def signed_parts(a,b):
    #assumes a < b
    if b <= 0:
        return b-a, 0
    elif a >= 0:
        return 0, a-b
    else:
        return -a, -b

def calc_comp(start, delta):
    if delta >= 0:
        return signed_parts(start,start + delta)
    else:
        return signed_parts(start + delta, start)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57940348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档