草庐IT

canvas2D

全部标签

标题:在Godot中使用Node2D创建自定义的Label

在Godot游戏引擎中,我们经常需要在游戏中显示文本信息。通常,我们可以使用Label节点来实现这一点。但是,在某些情况下,你可能希望更灵活地控制文本的显示和样式。在本篇博客中,我们将学习如何通过使用Node2D节点来创建一个自定义的Label,从而能够更好地控制文本的呈现方式。效果图步骤一:创建Node2D节点首先,在Godot编辑器中创建一个新的Node2D节点。你可以在场景层次结构面板中右键点击,选择“CreateNode”并选择“2DNode”。步骤二:导入字体资源在这个例子中,我们将使用自定义的字体来显示文本。首先,确保你已经有一个字体文件(.ttf或.otf格式),然后将其导入到G

python - 逐元素乘以 2D NumPy 数组并求和

我想知道是否有更快的方法/专用的NumPy函数来执行二维NumPy数组的逐元素乘法,然后对所有元素求和。我目前使用np.sum(np.multiply(A,B)),其中A、B是等维mxn的NumPy数组。 最佳答案 您可以使用np.tensordot-np.tensordot(A,B,axes=((0,1),(0,1)))另一种方式np.dot压平输入后-A.ravel().dot(B.ravel())另一个np.einsum-np.einsum('ij,ij',A,B)sample运行-In[14]:m,n=4,5In[15]:A

python - `with canvas:`(Python `with something() as x:`)如何在 Kivy 中隐式工作?

我刚刚意识到在Kivy中使用withPython语句添加顶点指令的方式有些神秘(至少对我而言)。例如,with的使用方式是这样的:...somecodeclassMyWidget(Widget)...somecodedefsome_method(self):withself.canvas:Rectangle(pos=self.pos,size=self.size)一开始我以为只是偶尔用到的withPython语句而已。但突然我意识到它不是。通常它看起来更像这样(示例取自here):withopen('output.txt','w')asf:f.write('Hithere!')通常在实

python - 对按 ID 列分组的巨大 2D NumPy 数组求和的最有效方法?

我有一个海量数据数组(50万行),如下所示:idvaluescore12020110301150212423825693618...如您所见,左侧有一个非唯一ID列,第3列中有各种分数。我希望快速将所有分数相加,并按ID分组。在SQL中,这看起来像SELECTsum(score)FROMtableGROUPBYid我尝试使用NumPy遍历每个ID,按每个ID截断表格,然后对该表格的分数求和。table_trunc=table[(table==id).any(1)]score=sum(table_trunc[:,2])不幸的是,我发现第一个命令很慢。有没有更有效的方法来做到这一点?

python - Tkinter Canvas 将项目移动到顶层

我有一个TkinterCanvas小部件(Python2.7,而不是3),在这个Canvas上我有不同的项目。如果我创建一个与旧项目重叠的新项目,它将在前面。我现在如何将旧项目移动到新创建的项目前面,甚至是Canvas上所有其他项目的前面?到目前为止的示例代码:fromTkinterimport*root=Tk()canvas=Canvas(root,width=200,height=200,bg="white")canvas.grid()firstRect=canvas.create_rectangle(0,0,10,10,fill="red")secondRect=canvas.c

python - 如何在 numpy 中创建 2D "rect"数组(1's, else 0' 的方 block )?

创建2Dnumpy“矩形”数组的“正确”方法是什么,例如:000000000000000000000000000000000000000000000000111110000000000000011111000000000000001111100000000000000000000000即在特定范围内具有给定值的数组,否则为零? 最佳答案 只需创建一个零数组并将您想要的区域设置为一个。例如importnumpyasnpdata=np.zeros((6,18))data[2:5,9:14]=1printdata这会产生:[[0.0.0.

Python Tkinter - 在初始声明后更改 Canvas 大小

我想在添加一些小部件后更改Canvas大小例子:fromTkinterimport*master=Tk()w=Canvas(master,width=100,height=100)w.config(bg='white')w.create_oval(90,90,110,110,width=0,fill="ivory3")w=Canvas(master,width=200,height=200)w.pack()mainloop()但似乎当我重新声明Canvas大小时,对象被删除了。我在Canvas上创建了一些对象后是否可以更新Canvas? 最佳答案

python - 在 Tkinter Canvas 中移动球

这是一个非常基本的程序,我想用它制作两个移动的球,但实际上只有一个在移动。我也尝试了一些变体,但无法让第二个球移动;另一个相关问题-有些人使用move(object)方法来实现这一点,而其他人则使用delete(object)然后重绘它。我应该使用哪一个?为什么?这是我的代码,它只动画/移动一个球:fromTkinterimport*classBall:def__init__(self,canvas,x1,y1,x2,y2):self.x1=x1self.y1=y1self.x2=x2self.y2=y2self.canvas=canvasself.ball=canvas.create

python - 缩放 2D 坐标并保持它们的相对欧氏距离不变?

我有一组点,例如:pointA(3302.34,9392.32)、pointB(34322.32,11102.03)等我需要对它们进行缩放,以便每个x和y坐标都在(0.0-1.0)范围内。我尝试通过首先找到数据集中的最大x值(maximum_x_value)和该集中最大的y值(minimum_y_value)来做到这一点。然后我做了以下事情:pointA.x=(pointA.x-minimum_x_value)/(maximum_x_value-minimum_x_value)pointA.y=(pointA.y-minimum_y_value)/(maximum_y_value-mi

python - Numpy - 将 2D 数组 reshape 并分区为 3D

有没有办法将2D数组划分并reshape为3D数组。像下面的例子:基本上,我的左边有一个4x4矩阵,我想要一个如图所示的2x2x4矩阵,这样我就可以在第3个轴上应用numpy.mean。实际上,我拥有的矩阵非常庞大,所以这就是为什么循环遍历block不是一种选择。非常感谢任何帮助。 最佳答案 对于您的示例,您可以使用numpy.lib.stride_tricks.as_strided.In[1]:A=np.arange(16).reshape(4,4)In[2]:AOut[2]:array([[0,1,2,3],[4,5,6,7],