Anatomography Web API サンプルコード - Perl - オートカメラ+相対回転角度による指定

はじめに

全身像を前および相対的な回転角度を指定して描画します。

サンプルコード

出力先ファイルは適宜変更して下さい。

#!/usr/bin/env perl
use strict;
use LWP::UserAgent;

# リクエスト先URL
my $serverURL = "http://lifesciencedb.jp/bp3d/API/";
$serverURL = "http://lifesciencedb.jp:32888/bp3d-38321/IM/";

# 描画リクエスト用のJSON文字列を作成
my $json01 = <<JSON;
{
	"Common": {
		"Version":"4.0",
		"TreeName":"partof"
	},
	"Camera": {
		"CameraMode":"front"
	},
	"Part":[
		{
			"PartName":"Human body"
		}
	]
}
JSON

# 出力
open OUT, ">autocameraplus_01.png";
binmode(OUT);
print OUT  &getImage($json01);	# 作成したJSONを利用して描画リクエスト
close OUT;

# 描画リクエスト用のJSON文字列を作成(相対回転角度指定)
my $json02 = <<JSON;
{
	"Common": {
		"Version":"4.0",
		"TreeName":"partof"
	},
	"Camera": {
		"CameraMode":"front",
		"AddLatitudeDegree":30,
		"AddLongitudeDegree":30
	},
	"Part":[
		{
			"PartName":"Human body"
		}
	]
}
JSON

# 出力(相対回転角度指定)
open OUT, ">autocameraplus_02.png";
binmode(OUT);
print OUT  &getImage($json02);	# 作成したJSONを利用して描画リクエスト
close OUT;

# 生成したJSONをパラメータとしてimageに対してGETリクエストするサブルーチン
sub getImage () {
	my $json = shift;
	my $userAgent = LWP::UserAgent->new;
	my $request = HTTP::Request->new('GET', $serverURL."image?".$json);
	my $response = $userAgent->request($request);
	return $response->content;
}

出力画像(角度未指定)


出力画像(相対回転角度指定)

以下、各ステップに関する説明です。

カメラの設定

# 描画リクエスト用のJSON文字列を作成(相対回転角度指定)
my $json02 = <<JSON;
{
	"Common": {
		"Version":"4.0",
		"TreeName":"partof"
	},
	"Camera": {
		"CameraMode":"front",
		"AddLatitudeDegree":30,
		"AddLongitudeDegree":30
	},
	"Part":[
		{
			"PartName":"Human body"
		}
	]
}
JSON
カメラ設定項目の"CameraMode"を"front"に設定し、さらに、緯度方向(AddLatitudeDegree)に30度、経度方向(AddLongitudeDegree)に30度さらに回転する指定をします。