类图中线的解释

我用的是jude这工具,现在叫Astah,据说不好用,但是好歹是免费的。


不明白线有什么区别和功能,特总结在这。


这两种我明白,

左边是继承,更标准的解释是泛化(generalization)

右边是实现(Realization),但下面这八种不明白



左上一:Unspecified Association To Unspecified Association (不明解释对不明解释)

左上二:Unspecified Association To Navigable Association (不明解释对可操纵解释)

左上三:Non-Navigable Association To Navigable Association(非可操纵解释对可操纵解释)

左上四:Navigable Association To Navigable Association(可操纵解释对可操纵解释)


箭头加直线就是关联(Association) : 对象之间一种引用关系,比如客户类与订单类之间的关系。这种关系通常使用类的属性表达。关联又分为一般关联、聚合关联与组合关联。后两种在后面分析。在类图使用带箭头的实线表示,箭头从使用类指向被关联的类。可以是单向和双向


左下一:Aggregation To Unspecified Association(聚合对不明解释

左下二:Aggregation  To  To Navigable Association(聚合对可操纵解释)


聚合(Aggregation) : 表示has-a的关系,是一种不稳定的包含关系。较强于一般关联,有整体与局部的关系,并且没有了整体,局部也可单独存在。如公司和员工的关系,公司包含员工,但如果公司倒闭,员工依然可以换公司。在类图使用空心的菱形表示,菱形从局部指向整体。


左下三:Composition To Unspecified Association(组成对不明解释)

左下四:CompositionTo  To Navigable Association(组成对可操纵解释)


组合(Composition) : 表示contains-a的关系,是一种强烈的包含关系。组合类负责被组合类的生命周期。是一种更强的聚合关系。部分不能脱离整体存在。如公司和部门的关系,没有了公司,部门也不能存在了;调查问卷中问题和选项的关系;订单和订单选项的关系。在类图使用实心的菱形表示,菱形从局部指向整体。



这个链接说的很明白 http://www.uml.org.cn/oobject/201104212.asp



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在OpenMV中进行拟合中线的过程可以分为以下几个步骤: 1. 预处理图像:首先,你需要对图像进行预处理,以便提取出中线所在的区域。这可以通过应用图像处理技术,如二值化、边缘检测等来实现。 2. 检测直线:使用OpenMV的线检测功能,可以检测出图像中的直线。你可以使用`find_lines`函数来实现这一步骤。该函数会返回一个包含所有检测到的直线的列表。 3. 拟合中线:根据检测到的直线,你可以使用线性回归算法来拟合出中线。线性回归是一种用于建立变量之间线性关系的统计模型。你可以使用NumPy库中的`polyfit`函数来进行线性回归拟合。 下面是一个示例代码,演示了如何在OpenMV中拟合中线: ```python import sensor import image import time import math import numpy as np # 初始化摄像头 sensor.reset() sensor.set_pixformat(sensor.RGB565) sensor.set_framesize(sensor.QVGA) sensor.skip_frames(time = 2000) # 设置阈值 GRAYSCALE_THRESHOLD = [(0, 64)] # 寻找中线 def find_center_line(): img = sensor.snapshot() img.binary(GRAYSCALE_THRESHOLD) lines = img.find_lines() # 拟合中线 x = [] y = [] for line in lines: rho, theta = line x.append(rho * math.cos(theta)) y.append(rho * math.sin(theta)) # 线性回归拟合 coeffs = np.polyfit(x, y, 1) k, b = coeffs return k, b # 主循环 while True: k, b = find_center_line() print("斜率:", k) print("截距:", b) time.sleep(100) ``` 请注意,以上代码仅为示例,具体的拟合中线过程可能需要根据实际情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值