<!--親の顔より見た光景-->

仕事に怯える21歳SE。日々の発見を残していきます。

【LaTeX】画像の挿入

\usepackage{dvipdfmx}[graphicx]

\begin{figure}[h]

  \begin{center}

    \includegraphics[clip, height=5.0cm]{test.png}

    \caption{テスト画像}

  \end{center}

\end{figure}

 

・\begin{figure}[位置指定]

 位置指定に使えるコマンドは、

 ①h 記述した場所に挿入

 ②t ページの上端に挿入

 ③b ページの下端に挿入

 ④p 専用ページを用意して出力

 

・\includegraphics[オプション]{ファイル名}

 オプションに指定出来るコマンドは、

 ①width 幅

 ②height 高さ

 ③scale 拡大・縮小率

 ④angle 回転角

 ⑤clip はみ出しを切り取る

 オプションはカンマ(,)で区切って複数指定できる。

ファイル名は.texが生成される場所に置くと相対パスで済む。

 

以下サイト様より参照

LaTeXコマンド集 - 図の基本

ループのミス

List<Integer> blue_coordinate = new ArrayList<Integer>();

blue_coordinateには座標が複数個入っている。この座標から一つだけを取り出したい。

naki_hora_infoに座標を格納したら座標探しは終了するので、break文を入れる。

break文を入れることを忘れて30分ほど悩んだ。

 

for ( int i = 0; i < blue_coordinate.size(); i++ ) {
  if ( blue_coordinate.get( i ) == horizontal_blue_coordinate ) {
    if ( i == 0 ) { // 左端が横向き
      naki_hora_info.naki_shape[naki_shape_count++] = 1;
      break;
    }
    else if ( i == ( blue_coordinate.size() - 1 ) ) { // 右端が横向き
      naki_hora_info.naki_shape[naki_shape_count++] = 2;
      break;
    }
    else if ( i == ( blue_coordinate.size() - 2 ) ) { // 真ん中が横向き
      naki_hora_info.naki_shape[naki_shape_count++] = 3;
      break;
    }

  }

}

ImageViewで動的にmarginを設定

xmlではなくJavaコードでImageViewの余白を動的に設定する方法。

android - How to set margin of ImageView using code, not xml - Stack Overflow

StackOverflowで解決。

 

ImageView image_view = ( ImageView )findViewById( R.id.test_image );

// ImageViewの大きさを設定
LinearLayout.LayoutParams layout_params = new LinearLayout.LayoutParams( width, height );
layout_params.setMargins( left, top, right, bottom );    // marginを設ける
image_view.setLayoutParams( layout_params );    // ImageViewのレイアウトを登録

【Android】marginとpadding

Androidでレイアウトを構築する際、余白を作りたいときに使えるタグにmarginとpaddingがある。

 

xmlでの指定

<ImageView

    android:layout_marginRight = "5dp"  />

<ImageView

    android:paddingLeft = "5dp"  />

 

ImageViewの場合・・・

・marginだとレイアウトを引き伸ばしてくれる。 → 画像のサイズに変化なし

・paddingはレイアウトが指定した数だけ小さくなる。 → 画像のサイズが小さくなる。

xmlでのViewの定義

副露数に応じて結果表示画面を変更したかった。

Javaファイルによるレイアウト作成は慣れていなかったのでxmlファイルを複数作った。その際に、Viewに付けるidを他のxmlファイルで定義したidと同じ名前にしてしまった。

これが原因でコンパイル時に「見つかりません」と言われたり、実行できたり、Javaコンパイラが混乱していた。

 

問題のxmlファイルを削除、プロジェクトをクリーンで解決。

テンプレートマッチングのメモ

鳴いた形の和了で、マッチングをかけると同時に副露牌・手牌の枚数を知りたい。

例えば下の画像だと、

f:id:akagi13213:20161114131356p:plain

①画素( 0, 0 )から右下端の画素までテンプレートマッチングをかけていき、類似度の高い座標を受け取る。

②その座標を基準に、テンプレート画像の面積だけ青く塗りつぶす。f:id:akagi13213:20161114131517p:plain

③枚数分①、②を繰り返す。

 

枚数を数える基準だが、最初は青矩形の面積が元画像の80%を超えるまでカウント変数をインクリメントし、80%を超えたら終了としていた。

3枚の副露牌の時は80%でちょうど良かったが、11枚の手牌では90%にしないとラスト1枚を認識することなくマッチングを終了してしまった。

 

そこで、(元画像の面積)ー(青矩形の面積)<(テンプレート画像の面積)をループ条件式してみた。

今のところマッチングの見逃しはなく、うまくいっている。