我正在使用Zelle的Python图形库,我需要一些帮助来创建一个算法来返回列表中的数字.
基本上我将5x7板分成100x100像素网格.这与此类列表相对应.
| 0| 1| 2| 3| 4|
| 5| 6| 7| 8| 9|
|10|11|12|13|14|
|15|16|17|18|19|
|20|21|22|23|24|
|25|26|27|28|29|
|30|31|32|33|34|
Run Code Online (Sandbox Code Playgroud)
我需要一种算法,通过鼠标点击获取网格的中心点,并将其转换为与列表对应的数字.例如,点(50,50)将返回0,点(150,150)将返回6,等等.
非常感谢您花时间帮助弄清楚这个算法!
我开发了一个派生自另一个的类,但我遇到了这个代码:
template <class A, class B, class C>
class BaseClass
{
public:
BaseClass(){}
virtual void amethod( A* aPtr=0)
{
mAPtr=aPtr;
}
virtual void init()=0;
protected:
A * mAPtr;
B* mBPtr;
C * mCPtr;
};
template <class A,class B,class C>
class ChildClass: public BaseClass<A,B,C>
{
public:
ChildClass( A* aAptr =0, B * aBPtr= 0, C* aCPtr= 0):mAPtr(aAptr)
,mBPtr(aBPtr)
,mCPtr(aCPtr)
{}
};
int main()
{
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译器说,子类没有任何父字段.
编译出来:
In constructor 'ChildClass<A, B, C>::ChildClass(A*, B*, C*)'
In constructor 'ChildClass<A, B, C>::ChildClass(A*, …Run Code Online (Sandbox Code Playgroud) 换句话说,为什么Python允许与内置类型名称相同的变量名,如int,float,list等?(相比之下,C++内置类型名称都是保留的).考虑这个例子
# int = 1
i = 2
if type(i) == int:
print 'Is int'
else:
print 'Not int'
Run Code Online (Sandbox Code Playgroud)
输出为"Is int ".但是,如果我取消注释第一行,则输出将为" Not int ".显然我的"int"已经覆盖了内置类型int.也就是说,在我看来,有潜在危险.
我有两个疑问,请帮助我:
我正在努力想出一种在双精度上进行某种开关样式选择的最佳方法,以找出它的范围.这样的东西:
double a = 1.1;
switch(a)
{
case: (0.0, 1.6)
return 1;
case: (1.6, 2.337)
return 2;
case: (2.337, 3.2974)
return 3;
default:
return -1;
}
Run Code Online (Sandbox Code Playgroud)
显然在这个例子中,范围中的一个值必须是非包容性的,但是你得到了我的漂移.有任何想法吗?
编辑,范围不一定是整数.
编辑2:我实际上正在处理弧度并找出一个点在12个范围中的哪一个.我最终这样做:
double pi = Math.PI;
double[] zones = new double[] {
0, pi/6, pi/3, pi/2,
2*pi/3, 5*pi/6, pi, 7*pi/6,
4*pi/3, 3*pi/2, 5*pi/3, 11*pi/6
};
for (int i = 0; i < 11; i++)
{
if (radians > zones[i] && radians <= zones[i + 1])
{
return i + 1;
}
}
Run Code Online (Sandbox Code Playgroud)
我开始做一个二元搜索类型if-else,但它会变得太乱.
我试图使用函数指针,我收到此错误:
无法转换void (__thiscall MyClass::*)(void)为void (__cdecl *)(void)
// Header file - MyClass.h
class MyClass
{
public:
MyClass();
void funcTest();
protected:
void (*x)();
};
// Source file
#include "stdafx.h"
#include "MyClass.h"
MyClass::MyClass()
{
x = funcTest;
}
void MyClass::funcTest()
{
}
Run Code Online (Sandbox Code Playgroud)
(使用:Visual Studio 6)
任何人都可以注意到我错过的任何东西吗?
我正在寻找在当前工作目录中的所有文件上迭代脚本而不迭代脚本(所以任何扩展.py).我当时正在使用它
for fileName in os.listdir('.'):
if fileName != 'autocorrelation1.py':
with open(fileName, "r") as input:
REST OF SCRIPT HERE
Run Code Online (Sandbox Code Playgroud)
当我在文件夹中只有一个脚本autocorrelation.py时,哪个有效,但现在我有一些python脚本,我想知道是否有一个bash风格的等效*例如
for fileName in os.listdir('.'):
if fileName != *'.py':
with open(fileName, "r") as input:
REST OF SCRIPT HERE
Run Code Online (Sandbox Code Playgroud)
我想我很懒,可以用另一行代码来做,但只是想知道是否有人知道更有趣的方式!
我有两个32位变量存储的大数字,时间(微秒).我需要一个帮助,如何将微秒时间改为毫秒,所以我可以存储32位数的差异结果.
更多细节:我有两次32位变量.其中一个变量具有更高有效位,而另一个变量具有更少有效位.这个时间有微秒分辨率,所以我想把它改成毫秒.那么如何划分存储在两个变量中的数字.
我是编程和c ++新手.我很感激这方面的一些帮助.
以下程序(在c ++中)在编译或运行时都不会遇到任何问题:
int main()
{
int b = 5;
int*a = &b;
*(a+5) = 6;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但根据我所学到的一切,它应该不起作用,因为a是指向单个变量的指针.我在这里错过了什么?
dlopen()在API-23上正常工作,但对于Android-N,当我尝试使用dlopen它打开任何sofile 时返回一个soinfo结构类型指针.但当我试图访问此结构的任何变量时,应用程序崩溃.
si = (soinfo*) dlopen("/data/app/com.xxx.xxx.sampleapp.android-1/lib/x86/libtest.so", RTLD_GLOBAL);
if (si == NULL)
return;
LOGI("value of dlopen [%d]", si->size);
Run Code Online (Sandbox Code Playgroud)
dlopen()Android-N的功能是否有任何变化?