小编Djo*_*822的帖子

我在python中找不到这个圆圈反弹计算有什么问题

我有一个程序,圆圈可以互相反弹.我按照这里的指示旋转矢量并根据碰撞角度缩放幅度:http://www.vobarian.com/collisions/2dcollisions2.pdf

我在python中编写了这段代码(0索引表示x坐标):

norm_vect = [(object2.pos[0] - object1.pos[0]), (object2.pos[1] - object1.pos[1])]
unit = sqrt((norm_vect[0]**2) + (norm_vect[1]**2))
unit_vect = [float(norm_vect[0]) / unit, float(norm_vect[1]) /unit]
tan_vect = [-unit_vect[1], unit_vect[0]]
vel1 = object1.vel
vel2 = object2.vel
vel1_norm = vel1[0] * unit_vect[0] + vel1[1] * unit_vect[1]
vel1_tan = vel1[0] * tan_vect[0] + vel1[1] * tan_vect[1]
vel2_norm = vel2[0] * unit_vect[0] + vel2[1] * unit_vect[1]
vel2_tan = vel2[0] * tan_vect[0] + vel2[1] * tan_vect[1]
new_vel1_norm = (vel1_norm * (object1.mass - object2.mass) + 2 …
Run Code Online (Sandbox Code Playgroud)

python debugging physics bounce

5
推荐指数
1
解决办法
192
查看次数

Tkinter 滚动条不工作

我有一段在 python 3.4 上运行的 tkinter 代码,它是一个放置在带有垂直滚动条的画布中的大框架,但是滚动条呈灰色,并且似乎与框架的大小无关。我使用的代码本质上是:

class EntryWindow:
    def __init__(self, master):
        self.master = master
        self.master.minsize(750, 800)
        self.master.maxsize(1000, 800)
        self.canvas = tk.Canvas(self.master, borderwidth=0, bg='#ffffff')
        self.vsb = tk.Scrollbar(self.master)
        self.master_frame = tk.Frame(self.canvas)
        self.vsb.pack(side="right", fill='y')
        self.canvas.pack(side='left', fill='both', expand=True)
        self.canvas.create_window((0,0), window=self.master_frame, anchor='nw', tags='self.master_frame')
        self.canvas.config(yscrollcommand=self.vsb.set)
        self.master_frame.grid()

        ###build widgets and place into master_frame
        ...
Run Code Online (Sandbox Code Playgroud)

其中master_frame充满了使用网格几何管理器放置的约 36 个小部件,并达到约 2000 像素的垂直高度,但滚动条不起作用。

我看到一篇关于使用 ttk 滚动条的帖子,但是当我导入时我无法让它工作。我使用的输入语句是:

import tkinter as tk
import tkinter.ttk as ttk
Run Code Online (Sandbox Code Playgroud)

然后将该行替换self.vsb = tk.Scrollbar(self.master)self.vsb = ttk.Scrollbar(self.master)但这也没有解决问题。我还尝试删除 master 上的最小/最大尺寸(这些不是最终值,我一直在使用它)。

我做错了什么吗?我觉得它可能在我设置 canvas.config() 的行中,但我阅读了文档,它似乎是正确的。明天我计划在构建框架后尝试将框架加载到画布中。

但与此同时,如果这不起作用,任何帮助都会很棒!谢谢!

python tk-toolkit tkinter python-3.x tkinter-canvas

3
推荐指数
1
解决办法
1万
查看次数

从具有最小NA值的数据框中选择一行

所以我有一个文本块,我已经分成了一个向量,从每行向量我进一步将它分成一个数据帧.在一个完美的世界中,DF的每一行都是完全相同的,但它并不存在,并且其中有许多行具有NA值.我需要做的是从数据框中选择具有最少NA值的行.

所以说DF看起来像这样:

姓名年份NA地址NA州
名称年份ID地址城市州名别
年份NA NA城市州名
NA NA NA NA NA
姓名年份NA NA NA NA NA

它们各自属于列.所以我需要一种方法来识别哪个行的NA数最少,然后选择该行的元素.所以最终我希望返回只是读取的单行DF(或优选的矢量)

姓名年份ID地址城市州级

在这种情况下,第2行.

我知道:

max(rowSums(!is.na(x)))

将返回具有最多数量的非na值的行#,但我似乎无法弄清楚如何抓取该行的元素.我在想使用哪个()会起作用,但我似乎无法弄明白.

谢谢你的帮助!

大卫

select row r which dataframe

2
推荐指数
1
解决办法
729
查看次数

Python:.pop()在无序集上

我有一个关于.pop()方法的问题.在文档中,它说明了on sets:

从集合中删除并返回任意元素.

那么"武断"究竟是什么意思呢?比如,例如:如果我想从随机确定位置的用户列表中构建队列,我可以将所有用户输入到集合中,然后使用.pop()构建随机分配的队列吗?

所以代码看起来像

queue_set = {'bob','rachel','sara','david'}
queue = dequeue([])
while queue_set:
        queue.append(queue_set.pop())
Run Code Online (Sandbox Code Playgroud)

这是将成员随机分配到索引的合理方法吗?或者.pop()是否依赖于输入数据的某种方式?

谢谢!

python set

1
推荐指数
1
解决办法
132
查看次数