小编der*_*ris的帖子

html 5画布绘图错误

我正在尝试根据html 5画布中绘制的矢量构建我的第一个几乎复杂的地图.

除了缩放之外,它运行良好.我注意到以下几点:

  • 在Firefox中,一切运行良好(除了鼠标滚轮,但这只是为了测试)
  • 在Chrome中使用鼠标滚轮缩小到比例因子<1时,看起来每次绘制时图像都会重复
  • 在Android和iOS中,使用缩放手势,存在最大的问题:每次重新绘制图像时都会出现重复的图像.

我一开始以为这是我的错,也许画布没有被清除.但经过一些测试,"幽灵"消失了,新鬼出现了.

如果有人可以提供帮助,那将会很酷.

代码 - HTML:

<div>
    <div style="position:absolute;top:30px;z-index:102;">
        <canvas id="canvas" width="1386" height="747" style="position:absolute;"></canvas>
    </div>
    <div style="position:absolute; top:30px;" id="debugText">Debug</div>
    <div style="position:absolute;top:30px; visibility: hidden;">
        <canvas id="debugCanvas" width="1386" height="747"></canvas>
    </div>
    <div style="position:absolute; left: 200px;z-index:99;" id="debugContols">
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <a href="#" onClick="javascript:zoomIn(0, 0, 0.5);">Zoom 0.5</a>
        <a href="#" onClick="javascript:zoomIn(0, 0, 2);">Zoom 2</a>
        <a href="#" onClick="javascript:zoomIn(0, 0, 3);">Zoom 3</a>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

代码 - Javascript:

var canvas = document.getElementById("canvas");
var debugCanvas = document.getElementById("debugCanvas");
var ctx = canvas.getContext("2d");
var ctxDebug = debugCanvas.getContext("2d");
var context …
Run Code Online (Sandbox Code Playgroud)

html javascript html5 html5-canvas

7
推荐指数
2
解决办法
2068
查看次数

Google Mock 匹配数组

我知道这个问题已被问过多次,但没有一个答案对我有用。这是我想测试的模拟函数:

  MOCK_METHOD2(sendInternal, void(uint8_t data[], uint8_t size));
Run Code Online (Sandbox Code Playgroud)

测试是这样的

    uint8_t expectedMessageData[3] = { 0x08, 0xda, 0xff };


    EXPECT_CALL(*serverFake, sendInternal(testing::_,3))
            .With(testing::Args<0, 1>(ElementsAre(0x08, 0xda, 0xff)))
            .Times(1);
Run Code Online (Sandbox Code Playgroud)

但这导致

预期参数:是一个元组,其字段 (#0, #1) 有 2 个元素,其中元素 #0 等于 '\b' (8),元素 #1 等于 '\xDA' (218) 实际:don' t 匹配,其字段 (#0, #1) 为 (0x7fcfd9500590, '\x11' (3)),有 3 个元素

对我来说,Gmock 似乎会比较参数而不是数组的元素。

我什至构建了一个自定义匹配器:

MATCHER_P2(HasBytes, bytes, size, "") {
    uint8_t * dataToCheck = arg;
    bool isMatch = (memcmp(dataToCheck, bytes, size) == 0);
    return isMatch;
}
Run Code Online (Sandbox Code Playgroud)

我可以看到(在调试时) isMatch == true 但测试仍然失败。

请帮忙!

c++ googletest googlemock

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

标签 统计

c++ ×1

googlemock ×1

googletest ×1

html ×1

html5 ×1

html5-canvas ×1

javascript ×1