python - 如何在 Python 中创建一个 float2 类
问题描述
我最近想使用 ursina 引擎在 python 中对光线行进进行编程。为此,我需要一个名为float2的特殊类。在统一引擎中,您可以正常编程float2并将其提供给您的参数参数,但在 python 中没有float2这样的类,我尝试做一些简单的方法来制作它,但是当我想存储变量时遇到问题。
基本上我有一个 float2 类:
class float2:
def __init__(self, x, y):
self.x = x,
self.y = y
它只存储 x 和 y。
然后我有一些使用类的功能:
def length(v: float2):
return float(sqrt(v.x*v.x + v.y*v.y))
def signedDstToCircle(p: float2, centre: float2, radius: float):
return length(centre-p) - radius
这很好用,但我遇到了障碍。我需要从函数中分配一个变量 a:
def signedDstToBox(p: float2, centre: float2, size: float2):
offset = float2(abs(p-centre) - size)
# dst from point outside the box to edge (0 if inside the box)
unsignedDst = length(max(offset, 0))
# -dst from point inside the box to edge (0 if outside the box)
dstInsideBox = max(min(offset, 0))
return unsignedDst + dstInsideBox
如果我现在尝试运行程序,它会给我一个错误:
offset = float2(abs(p-centre) - size)
TypeError: unsupported operand type(s) for -: 'float2' and 'float2'
我认为它给了我错误,因为它不是一个数字,所以它不能进行数学运算,而且我认为当我解决这个问题时,存储变量会有另一个问题。
如果有人知道如何使这成为可能,那么我可以进行数学运算并且也可以通过这样做来存储变量,offset = float2(abs(p-centre)-size)
它将被存储,我可以通过执行offset.x
和访问它offset.y
提前致谢, galfar(SpringPeace)
解决方案
推荐阅读
- python - Flask - 将用户上传的图像提供给网页
- scala - 为什么在 scala 中不推荐使用隐式转换?
- react-native - React Native - 在获取和返回组件时使用 Promise
- r - 强制 R 在 dbplyr mutate_at Spark 翻译中使用单引号
- ajax - 经典 ASP - 无法从 AJAX 发布请求中获取 Request.Form 值
- php - 使用 laravel 验证时间
- python - colab 上的 graphviz - 如何使用 rankdir
- python - 使用子进程模块执行 python 脚本但从 IDLE 执行代码时出现 NameError
- python - ADC的采样率和采样频率的区别
- javascript - Jquery UI 自动完成选择未触发