小编dir*_*tly的帖子

围绕另一个点旋转一个点(2D)

我正在尝试制作纸牌游戏.现在显示它我使用具有功能的Allegro API:

al_draw_rotated_bitmap(OBJECT_TO_ROTATE,CENTER_X,CENTER_Y,X
        ,Y,DEGREES_TO_ROTATE_IN_RADIANS);
Run Code Online (Sandbox Code Playgroud)

所以有了这个,我可以轻松地让我的粉丝效果.问题在于知道哪个卡在鼠标下面.为此,我想到做多边形碰撞测试.我只是不确定如何旋转卡上的4个点来构成多边形.我基本上需要和Allegro做同样的操作.

例如,卡的4个点是:

card.x

card.y

card.x + card.width

card.y + card.height
Run Code Online (Sandbox Code Playgroud)

我需要一个像以下的功能:

POINT rotate_point(float cx,float cy,float angle,POINT p)
{
}
Run Code Online (Sandbox Code Playgroud)

谢谢

c++ algorithm

123
推荐指数
5
解决办法
14万
查看次数

为什么typedef不能用于静态?

为什么typedef不能用于静态?例如,下面的代码是错误

typedef static int INT2;
Run Code Online (Sandbox Code Playgroud)

使用typedef应该遵循哪些其他规则?还有哪些其他关键字不能与typedef一起使用?

非常感谢!

c++

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

来自Java的CPU负载

有没有办法在不使用JNI的情况下获取Java下的当前cpu负载?

java profiling

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

C++ STL:根据另一个的内容自定义排序一个向量

这可能是最好的例子.我有两个向量/列表:

People = {Anne, Bob, Charlie, Douglas}
Ages   = {23, 28, 25, 21}
Run Code Online (Sandbox Code Playgroud)

我想根据他们的年龄使用类似的东西来对人们进行排序sort(People.begin(), People.end(), CustomComparator),但我不知道如何编写CustomComparator以查看Ages而不是People.

c++ sorting stl

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

任何探讨基于C++的COM应用程序可用的性能问题和优化策略的论文?

警告:我不确定这是否可以被认为是一个正确的SO编程问题!

我在使用MS Office Suite时遇到了严重的性能损失,主要是因为我处理了数百万个COM来处理文档.部分问题是通过使用OOXML SDK而不是使用本机应用程序的API来解决的.但是,OOXML SDK本身会进行COM调用,这会减慢速度(是的,我已经适当地运行了Visual Studio的内置性能分析器和BoundsChecker,并确保算法是我们可以在整个过程中使用的最佳算法).我认为一层缓存可以加快速度(有时会将执行时间减少四分之一)(但显然,加速速度因我的访问模式而异,而访问模式又取决于文档的内容结构).

鉴于COM和C++已经存在了这么长时间,我很惊讶地看到在优化基于C++的COM应用程序上的材料很少.(快速搜索谷歌应该足以证明我的观点,但我不介意被证明是错误的!)

  • 所以,如果你们能帮助我从互联网的挖掘机中挖掘出一些相关的论文,那将是很棒的.
  • 另外,(因为我的工作非常明显)是否仍然值得写下我作为论文的经验?

编辑:澄清:我不是真的在寻找替代方案(因为改变基础知识为时已晚).我有兴趣阅读过去人们可能面临的类似问题,以及他们如何解决这些限制.

c++ com optimization resources

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

基于通用char []的存储并避免与严格别名相关的UB

我正在尝试构建一个类模板,它在一个适当大的char数组中包含一堆类型,并允许作为单独的正确类型引用访问数据.现在,根据标准,这会导致严格别名违规,从而导致未定义的行为,因为我们char[]通过与其不兼容的对象访问数据.具体来说,标准规定:

如果程序试图通过以下类型之一以外的glvalue访问对象的存储值,则行为未定义:

  • 对象的动态类型,
  • 一个cv限定版本的动态类型的对象,
  • 与对象的动态类型类似的类型(如4.4中所定义),
  • 与对象的动态类型对应的有符号或无符号类型的类型,
  • 一种类型,是有符号或无符号类型,对应于对象动态类型的cv限定版本,
  • 聚合或联合类型,包括其元素或非静态数据成员中的上述类型之一(递归地,包括子聚合或包含联合的元素或非静态数据成员),
  • 一个类型,它是对象动态类型的(可能是cv限定的)基类类型,
  • a charunsigned char类型.

鉴于突出显示的要点的措辞,我提出了以下alias_cast想法:

#include <iostream>
#include <type_traits>

template <typename T>
T alias_cast(void *p) {
    typedef typename std::remove_reference<T>::type BaseType;
    union UT {
        BaseType t;
    };
    return reinterpret_cast<UT*>(p)->t;
}

template <typename T, typename U>
class Data {
    union {
        long align_;
        char data_[sizeof(T) + sizeof(U)];
    };
public:
    Data(T t = T(), U u = U()) { first() = t; second() = u; }
    T& first() …
Run Code Online (Sandbox Code Playgroud)

c++ strict-aliasing undefined-behavior type-punning c++11

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

如何将ByteArray(从Flash)和一些表单数据发送到php?

我有一个用Flash AS3制作的草图垫,如下所示:http://henryjones.us/articles/using-the-as3-jpeg-encoder

我想将jpg发送到服务器,并使用php将html表单字段中的一些数据发送到服务器.当按下提交按钮时,有没有办法强制Flash影片传递图像文件?

php flash jpeg input actionscript-3

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

纯虚拟类和集合(向量?)

我正在研究一种相当广泛使用虚拟类的图形应用程序.它有:

  • 图片类,基本上是形状的集合.

  • 一个形状类,它纯粹是虚拟的,并且有一些继承自它的类:

    • 多边形
    • 长方形
  • 图形形状,即任何图形图形(也是虚拟的),形状继承自此.

从本质上讲,我的问题归结为实现图片类,它基本上用于存储形状集合.我目前正在使用Vector来存储形状,但是,很明显这是错误的决定,因为Vector实例化了这些形状,这并不好,因为它们纯粹是虚拟的.

下面是我目前的代码库(总结了一下):

class Figure {
public:
...
  virtual ~Figure();
...
};

class Shape: public Figure
{
public:
...
  virtual ~Shape() {}
  virtual Shape* clone() const = 0;
...
};

class Polygon : public Shape
{
public:
...
virtual Shape* clone() const {return new Polygon(*this);}
... 
private:
std::vector<Point> points;

};

class Picture: public Figure {
public:
...
  Picture(Graphics& gd);
  Picture (const Picture&);
  ~Picture();
  void clear();
  void add (const Shape&);
...
private:
std::vector<Shape> shapes;
Graphics* …
Run Code Online (Sandbox Code Playgroud)

c++ virtual vector virtual-inheritance

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

ncurses- KEY_ENTER失败

我一直在努力教自己ncurses,到目前为止我很喜欢它.但是,我正在尝试编写一个像pico或nano这样的小文本编辑器.到目前为止,我已经把它设置得相当好.我创建了一个映射键的函数.无论我做什么,我都无法得到KEY_ENTER的回复.每当我按下它时,它就会到达我所在的当前行的开头.我尝试过使用raw(); 并使用13而不是"KEY_ENTER"没有运气.所有其他键都按预期响应.我很感激任何建议.我一直盯着这个试图让它永远有效.谢谢!

    void keymaps(){

    int ch;
    keypad(stdscr,TRUE);
       case KEY_UP:
            addstr("Up\n");
            break;
        case KEY_LEFT:
            addstr("Left\n");
            break;
        case KEY_RIGHT:
            addstr("Right\n");
            break;
        case KEY_BACKSPACE:
            delch();
            break;
        case Key_Enter:
            addstr("You pressed Enter\n");
        default:
            break;
        }
        refresh();
    } while(ch != KEY_HOME);
}
Run Code Online (Sandbox Code Playgroud)

ncurses

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

损坏的TrueType字体检测

我目前正在处理一个腐败的TrueType字体.我可以使用的程序告诉我表中存在问题maxp- 该maxContours成员的值太大.有没有一种可靠的方法来检测某个maxContours值是太高还是太低(是的,这也可能是一个问题)?(字体是程序,因此检测字体文件的一种方法是执行它们,但这对我来说不是一个可接受的解决方案.)

我不需要字体库,因为我无法添加字体库.我已经推出了自己的TrueType字体解析器.剩下的就是检查上面提到的表的给定值是否不正确.然后我会将解析器和支票添加到我的产品中.

我没有重建字体的选项.我是一个消费者 - 我需要检测传入的字体是否已损坏,以及是否尽可能少地完成工作.

万一它有帮助 - 我在Windows XP/Vista 32和64位及其服务器版本!

fonts truetype

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