patrickbussmann/shooting-target

根据坐标系绘制射击靶,显示命中点

1.0.1 2017-08-18 16:47 UTC

This package is auto-updated.

Last update: 2024-09-19 02:46:57 UTC


README

Build Status Latest Stable Version Total Downloads StyleCI codecov.io

目标是显示来自www.meyton.org/shooting-data-feed-sdf/系统的命中。数据源称为射击数据流(SDF),可以是XML文件或MySQL数据库。

安装

使用Composer

$ composer require patrickbussmann/shooting-target
{
    "require": {
        "patrickbussmann/shooting-target": "dev-master"
    }
}
<?php

require 'vendor/autoload.php';

use ShootingTarget\Target;
use ShootingTarget\Hit;

不使用Composer

$ git clone https://github.com/patrickbussmann/shooting-target.git
<?php

require 'shooting-target/src/Target.php';
require 'shooting-target/src/Hit.php';

use ShootingTarget\Target;
use ShootingTarget\Hit;

使用方法

示例 Air Rifle 10m (德语: Luftgewehr LG 10m)

$target = new Target(0.5, 0.5, 2.5, 4, 10);
$target->addHit(new Hit(0, 0));
$target->addHit(new Hit(500, 500));
$target->addHit(new Hit(-500, 500));
$target->addHit(new Hit(500, -500));
$target->addHit(new Hit(-500, -500));
header('Content-Type: image/png');
$target->draw();

结果

The picture generated by the script above

示例 Air Pistol 10m (德语: Luftpistole / LP 10m)

$target = new Target(11.5, 5.0, 8.0, 7, 10);
$target->addHit(new Hit(0, 0));
$target->addHit(new Hit(1000, 1000));
$target->addHit(new Hit(-1000, 1000));
$target->addHit(new Hit(1000, -1000));
$target->addHit(new Hit(-1000, -1000));
header('Content-Type: image/png');
$target->draw(10);

结果

The picture generated by the script above

自定义字体示例

使用自定义字体更好,因为它可以缩放到你选择的大小。

$target = new Target(0.5, 0.5, 2.5, 4, 10);
$target->addHit(new Hit(0, 0));
$target->addHit(new Hit(500, 500));
$target->addHit(new Hit(-500, 500));
$target->addHit(new Hit(500, -500));
$target->addHit(new Hit(-500, -500));
header('Content-Type: image/png');
$target->draw(10, Target::DRAW_TYPE_PNG, __DIR__ . '/arial.ttf');

结果

The picture generated by the script above

靶子列表

有许多与这个兼容的靶子。按需使用。以下示例基于DSB的此文件。这就是为什么表格是德语的原因。

贡献

支持

喜欢这个项目请给它点个赞 😉