【问题标题】:How to draw cricket bowler bowl trajectory (Hawkeye) on a cricket pitch using android?如何使用android在板球场上绘制板球投球手碗轨迹(Hawkeye)?
【发布时间】:2022-01-20 19:38:09
【问题描述】:

我正在做一个 android 项目,我需要在其中绘制板球碗轨迹 (Hawkeye),如其中一些图像所示。Sample Hawkeye first ImageSample Hawkeye second image。我从每个球的 JSON 文件中获取一组 (x,y,z) 坐标。以下是一个球的一组 JSON (x,y,z) 坐标。

 "bowlerToBatsmanCoordinatesArray": [
                                {
                                    "timestamp": "322",
                                    "x-coordinate": 21.266832577421894,
                                    "y-coordinate": -1.698919658814816,
                                    "z-coordinate": -2.328790240050602
                                },
                                {
                                    "timestamp": "323",
                                    "x-coordinate": 19.744741796911395,
                                    "y-coordinate": -1.7546725841684885,
                                    "z-coordinate": -1.3149661623354854
                                },
                                {
                                    "timestamp": "324",
                                    "x-coordinate": 18.163113002329805,
                                    "y-coordinate": -1.8181315713803832,
                                    "z-coordinate": -0.3726406002332424
                                },
                                {
                                    "timestamp": "325",
                                    "x-coordinate": 16.915619718779418,
                                    "y-coordinate": -1.862530157033399,
                                    "z-coordinate": 0.3835348845275711
                                },
                                {
                                    "timestamp": "326",
                                    "x-coordinate": 15.20037213100631,
                                    "y-coordinate": -1.9429072430715015,
                                    "z-coordinate": 1.3956963104036524
                                },
                                {
                                    "timestamp": "327",
                                    "x-coordinate": 13.85119821269433,
                                    "y-coordinate": -2.014279284076214,
                                    "z-coordinate": 2.084124775615443
                                },
                                {
                                    "timestamp": "328",
                                    "x-coordinate": 12.296925403950393,
                                    "y-coordinate": -2.0848934077227144,
                                    "z-coordinate": 3.002125496768708
                                },
                                {
                                    "timestamp": "329",
                                    "x-coordinate": 10.596762964417975,
                                    "y-coordinate": -2.144978563141154,
                                    "z-coordinate": 3.9854391961105424
                                },
                                {
                                    "timestamp": "330",
                                    "x-coordinate": 9.036151468427795,
                                    "y-coordinate": -2.2139005827019003,
                                    "z-coordinate": 4.809615391795533
                                },
                                {
                                    "timestamp": "331",
                                    "x-coordinate": 7.501265898113952,
                                    "y-coordinate": -2.2343056898435525,
                                    "z-coordinate": 5.5862814469680036
                                },
                                {
                                    "timestamp": "332",
                                    "x-coordinate": 5.832871586047817,
                                    "y-coordinate": -2.288771976826293,
                                    "z-coordinate": 6.52388744451737
                                },
                                {
                                    "timestamp": "333",
                                    "x-coordinate": 4.544282231100583,
                                    "y-coordinate": -2.3516045299032617,
                                    "z-coordinate": 7.093216964758319
                                },
                                {
                                    "timestamp": "334",
                                    "x-coordinate": 3.054858477708966,
                                    "y-coordinate": -2.3089188220338643,
                                    "z-coordinate": 7.747678608542945
                                },
                                {
                                    "timestamp": "335",
                                    "x-coordinate": 1.682549014768629,
                                    "y-coordinate": -2.3181758951823843,
                                    "z-coordinate": 8.328889911339012
                                },
                                {
                                    "timestamp": "336",
                                    "x-coordinate": -0.05046667787178777,
                                    "y-coordinate": -2.390801584323639,
                                    "z-coordinate": 9.271199520767249
                                },
                                {
                                    "timestamp": "337",
                                    "x-coordinate": -1.4353285041036858,
                                    "y-coordinate": -2.421066541823864,
                                    "z-coordinate": 10.060396524431843
                                },
                                {
                                    "timestamp": "338",
                                    "x-coordinate": -3.0121983507937737,
                                    "y-coordinate": -2.4209961295006637,
                                    "z-coordinate": 10.807533772937736
                                },
                                {
                                    "timestamp": "339",
                                    "x-coordinate": -4.59197650125572,
                                    "y-coordinate": -2.4705408392032653,
                                    "z-coordinate": 11.743506277581478
                                },
                                {
                                    "timestamp": "340",
                                    "x-coordinate": -5.977314735189168,
                                    "y-coordinate": -2.43326152798433,
                                    "z-coordinate": 12.344368657862992
                                },
                                {
                                    "timestamp": "341",
                                    "x-coordinate": -6.774567931476065,
                                    "y-coordinate": -2.437360281731236,
                                    "z-coordinate": 12.430819226855204
                                },
                                {
                                    "timestamp": "342",
                                    "x-coordinate": -6.812849075177201,
                                    "y-coordinate": -2.368266061130305,
                                    "z-coordinate": 11.787660059058462
                                },
                                {
                                    "timestamp": "343",
                                    "x-coordinate": -6.819764750787808,
                                    "y-coordinate": -2.3666133637255293,
                                    "z-coordinate": 11.198892295550186
                                },
                                {
                                    "timestamp": "344",
                                    "x-coordinate": -6.6888194243268595,
                                    "y-coordinate": -2.347248721508375,
                                    "z-coordinate": 10.409395437536842
                                },
                                {
                                    "timestamp": "345",
                                    "x-coordinate": -6.226181884542983,
                                    "y-coordinate": -2.323863537326364,
                                    "z-coordinate": 9.158921932188223
                                },
                                {
                                    "timestamp": "346",
                                    "x-coordinate": -6.626138389695026,
                                    "y-coordinate": -2.4013575515908796,
                                    "z-coordinate": 9.098642640540435
                                },
                                {
                                    "timestamp": "347",
                                    "x-coordinate": -7.128428566585037,
                                    "y-coordinate": -2.4376102915814006,
                                    "z-coordinate": 9.139772564217175
                                }

使用 JSON 我想绘制鹰眼,如图所示。谁能帮我找到解决方案?任何帮助都是非常可观的。提前致谢。

【问题讨论】:

    标签: java android android-studio unity3d


    【解决方案1】:

    查看适用于 Android 的 Bezier 曲线和 OpenGL 实现。使用什么库来渲染轨迹曲线并不重要,但贝塞尔曲线的概念可能是最有效的方法。 您必须知道曲线的原点(鲍勒的出手点),即板球的第一个反弹点。这些坐标将帮助您生成第一条曲线。然后以后一点作为第二条曲线的起点,选择击球手身后的任意一点作为终点坐标,生成第二条曲线。为了使第二条曲线与第一条曲线对齐,任意第二条曲线终点坐标必须与板球的初始弹跳点一致。该点的 y 坐标也应具有与投球手释放点的 y 坐标相同或更大的值,以保持一致的显示美感。

    【讨论】:

    • 你好,mindoverflow。我已经浏览了它们,但我不明白如何绘制它。你能帮我写一些代码吗?
    • 恐怕没那么简单。您必须首先通过诸如 GLUT 之类的库来了解某种形式的图形 api,例如 OpenGL。然后你必须对贝塞尔曲线有实际的数学理解。这是您可以开始的方法。研究如何在Android上绘制曲线。这将指向一些 API 库。学习操作那个图书馆。然后你研究曲线,然后在屏幕上绘制它。如果我给您代码,您将无法理解或运行它,因为您可能对图形在屏幕上的呈现方式没有基本的了解。
    • 这是一个很好的入门资源:learnopengl.com
    猜你喜欢
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 2016-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多