RT-AC86U 追加
マニュアルのセットアップの部分を読み,Aterm BL190HW の空いた LAN ポートに接続.
設定用の PC は,T90Chi を利用.本当は,有線の方が良いのだろうが面倒だったので…
ハード的な接続後 AC86U の電源を入れると,赤い LED の表示が…
マニュアルによると WAN LED で「IP アドレスが取得できていない」とのこと.
PC から ASUS_00_2G(オープン)に接続すると,ID の設定画面に.
新しく入力して進めると WAN 側が設定され,PC から外への接続はできるようになった.
WAN LED のランプも「白」に.
ここまでは,BL190HW の下に既存の LAN 環境(192.168.0.x)と AC86U が存在する状態.
AC86U の WAN 側は 192.168.0.11 ,LAN 側は 192.168.1.11 .
LAN 内には外からアクセス可能にしているものがある.
WD Cloud
DS116
また,幾つかの機器は固定 IP.
HDL-AH2W,HVL-S3,psc 2550,テスト環境の Web サーバなど.
先ず,他に影響を与えそうにない WD Cloud から.
固定 IP を外して,DHCP に.
AC86U に繋ぎ直すと,特に問題なさそう.
LAN 内で,\\WDCloud は OK.//wdcloud も.
スマートフォン用のアプリも問題なし.
4G 接続でのスマートフォン用アプリも OK.
192.168.0.x で接続している wdcloud.jp も問題なさそう.
WD Cloud のこの辺りの動作は良くできていると思う.
PC やスマートフォンなど動作状況を把握するために,
ASUS Router アプリ
球が作成できない
背景画像のアップロードで,球を生成してそれに貼り付ける.
コード自体はそれほど難しくないので,1 日位でできると思ってた.
Windows のコンソール AP で,次の様なコードを書いてテスト.
MakeBG.cpp
make_bg.hxx
#include "MessBar.hxx" #include "i_Trace.hxx" #include "gonsprm2.hxx" #include "Htm_thrj.hxx" //******************************************************************************* // make bg files imo and html // Create : 2018/04/19 //******************************************************************************* inline bool MakeBG (c_tstring& dibPath) { tstring ext = ::Path_GetExtLow(dibPath) ; if (ext == _T("bmp")) { ; } else if (ext == _T("jpg")) { ; } else if (ext == _T("png")) { ; } else { return false ; } { tstring imoPath = ::Path_ChangeExt(dibPath,_T(".imo")) ; tstring htmName = ::Path_ChangeExt(dibPath,_T(".html")) ; tstring dmpName = ::Path_ChangeExt(dibPath,_T(".ipl")) ; { long div = 90/5 ; v_Vd3A pntsAry = ::BuildSphere(div) ; { std::tout << pntsAry.size() << std::endl ; if (pntsAry.size() > 0) { Vd3A pnts = pntsAry[0] ; std::tout << pnts.size() << std::endl ; } tstring str = ::v_V3_To_tstring(pntsAry,_T(",")) ; { std::tout << str << std::endl ; } ::SaveText(dmpName.c_str(),str) ; } v_Vd2A txuvAry = ::SetTextureUV(pntsAry) ; pntsAry = ::V3_Scale (pntsAry,Vd3(20.)) ; Gons1 gons1 = ::Gons_BuildFace(pntsAry,txuvAry,dibPath.c_str()) ; GonsA ga ; ga.push_back(gons1) ; Ed3 es = ::GonsA_GetExtent(ga) ; { std::tout << imoPath << _T("\t") ; std::tout << ::V3_To_tstring(es.Volume()) << std::endl ; } if (es.Volume() != Vd3(0)) { es = Ed3(es.L*0.01,es.G*0.01) ; ::GonsA_ToOBJ(ga,imoPath.c_str()) ; ::HT_Make_three_js_html(imoPath.c_str(),es) ; } } } return true ; } //******************************************************************************* // Make BG // Create : 2018/04/19 //******************************************************************************* int _tmain (int argc,TCHAR* argv[]) { _tsetlocale(LC_ALL,_T("")) ; { double s = sin(rad(30)) ; double c = cos(rad(30)) ; std::tout << ::To_tstring(rad(30)) << _T("\t") << ::To_tstring(s) << _T("\t") << ::To_tstring(c) << std::endl ; } if (argc > 1) { v_tstring argAry ; for (int index=1 ; index<argc ; index++) { tstring av = argv[index] ; ::MakeBG(av) ; } } else { tstring buf ; buf.resize(1000) ; { while (std::terr << _T("dib ? =") , std::tin.getline(&buf[0],buf.size())) { tstring str = buf.c_str() ; if (str == _T("q")) { break ; } else if (str == _T("Q")) { break ; } str = ::QuotM_Del_All(str) ; if (str.empty()) { continue ; } if (::File_IsNothing(str)) { continue ; } tstring dib_file = str ; ::MakeBG(dib_file) ; } } } return 0 ; } #include "MessBar.cxx"
今度は,DS116 でビルドして実行すると,
Iwao@DS116:/var/.../Test/up_bg/data$ ./a.out 0.523599 98314745853377985068733249901357667205561433229409406145971019710277043155206326909160297391588106447153156445277590513896008090831662627743743127151181611161993303763348552511914898438567008016612049817143085994563143448055356356529593034366351316506187159487365573007925410016860727208738652774465536.000000 98321247861193438769252981549279948821735544950351014769381393881588573259178110828643912278175146924986161470094082713103803921735703931192359519739047155548857037547932930737608178537416409042994283830606984599100883034181136178714087912736395732787698542049681305006129736011480288874859116047106048.000000 dib ? =
本当は,
C:\Users\Iwao\...\i_Tools.tmp>\\DevXP\C_Drive\Temp\DS11x\MakeBG\Release.060\MakeBG.exe 0.523599 0.500000 0.866025 dib ? =
cmath が使えない様で,検索すると「-lm でコンパイルが通る」と言うのは見つかる.
が,コンパイルの問題ではなく,実行でうまくない.
当然ではあるが,DS115j でも同様.
試しに,opkg update と opkg install gcc .
root@DS116:/var/…/Iwao# opkg update
Downloading http://pkg.entware.net/binaries/armv7/Packages.gz
Updated list of available packages in /opt/var/opkg-lists/packages
root@DS116:/var/…/Iwao# opkg install gcc
Upgrading gcc on root from 6.3.0-1 to 6.3.0-1a…
Downloading http://pkg.entware.net/binaries/armv7/gcc_6.3.0-1a_armv7soft.ipk
Configuring gcc.
root@DS116:/var/…/Iwao#
もう一度,ビルドして実行すると,
Iwao@DS116:/var/…/Test/up_bg/data$ g++ MakeBG.cpp
Iwao@DS116:/var/…/Test/up_bg/data$ ./a.out
0.523599 0.500000 0.866025
dib ? =
予想以上に時間がかかってしまったが,何とか…
daikoku_edit.html
2019/02/13 リンクなどを修正
PHP $_FILES
やってないとすぐ忘れてしまうのでメモ.
PHP マニュアル POST メソッドによるアップロード
php 側での次の様な取り出し.
$tempfile = $_FILES[‘fname‘][‘tmp_name’];
‘fname‘ にあたる部分は,input タグの name 属性.
<input type=”file” name =”fname” accept=”.jpg,.png”>
CHttpFile でのアップロード の場合は,汎用的になる様に処理している.
function uf_upload_files () { $d_dir = uf_get_upload_folder() ; // echo $d_dir . "<br/>\r\n" ; $up_status = false ; foreach ($_FILES as $keys => $values) { $file_e = $values ; $tempfile = $file_e['tmp_name'] ; $filename = $d_dir . $file_e['name'] ; $filename = uf_get_up_file_name($filename) ; if (is_uploaded_file($tempfile)) { $up_status = move_uploaded_file($tempfile,$filename) ; } } return $up_status ; }
アップロード先のアクセス権
次の様な htm と php で,画像をアップできる所を用意.
up.htm
<!DOCTYPE html> <html lang="ja" > <head > <meta charset="UTF-8" /> </head> <body > <form action="http:./up.php" method="post" enctype="multipart/form-data"> <input type="file" name ="fname" accept=".jpg,.png"> <input type="submit" value="upload"> </form> </body> </html>
up.php
<?php $tempfile = $_FILES['fname']['tmp_name']; $fileName = './data/' . $_FILES['fname']['name'] ; $up_status = false ; if (is_uploaded_file($tempfile)) { $up_status = move_uploaded_file($tempfile , $fileName ) ; } $frm_src = './' ; if ($up_status) { $frm_src = $fileName ; } header("Location: {$frm_src}") ; ?>
これらのファイルとアップ先のフォルダを用意しただけでは,アクセス権がないのでアップロードできない.
以前は,DSM に入り「File Station」で「権限」を設定していた.
今まで面倒と思いつつ,試しに Windows 環境からアクセス権を「読み取り(RX)(RX)」から「変更」に.
File Station で設定したものと少し異なるが,それなりに動作してそう.
WinFile.exe
Google ニュースで,次の内容を見つけた.
Windows 3.x時代の“ファイルマネージャ”がオープンソース化で復活~Windows 10でも利用可能に
WinXP までは,1999/10/14 8:00:00 の WinFile.exe を使用している.
Win7 でも動作させるための方法があって,試したこともあるがうまく動作しなかった.
Windows File Manager revived
次の所から落として動作を確認してみた.
WinFile v10.0 – Sharing 10 years of improvements
Winfile_orig_plus.zip の方がオリジナルに近いのでやってみたが,設定情報が保存されないみたい.
Winfile_v10.0.zip は,「Properties」などが新しくなってしまっている.
2019/05 v10.0.1901.1 で内容を更新しています.
WinFile.exe v10.0.1901.1
コンソール AP で C2065 C2059
コンソール AP で,ビルドすると
--------------------構成: T_S_xxx - Win32 Debug-------------------- コンパイル中... T_S_xxx.cpp \\devs\documents\develop\_.src\_yet\winmfc.hxx(68) : error C2065: 'CListCtrl' : 定義されていない識別子です。 \\devs\documents\develop\_.src\_yet\winmfc.hxx(68) : error C2065: 'ctrl' : 定義されていない識別子です。 \\devs\documents\develop\_.src\_yet\winmfc.hxx(68) : error C2059: 構文エラー : 'const' \\devs\documents\develop\_.src\_yet\winmfc.hxx(68) : error C2143: 構文エラー : ';' が '{' の前に必要です。 \\devs\documents\develop\_.src\_yet\winmfc.hxx(68) : error C2447: '<L_PROPERTY>' : 関数ヘッダがありません (旧形式の仮引数リスト?) ... \\devs\documents\develop\_.src\_yet\list.hxx(159) : error C2061: 構文エラー : 識別子 'CListCtrl' がシンタックスエラーを起こしました。 \\devs\documents\develop\_.src\_yet\list.hxx(169) : error C2061: 構文エラー : 識別子 'CListCtrl' がシンタックスエラーを起こしました。 ... \\devs\documents\develop\_.src\...\.....cpp(2017) : fatal error C1903: 直前のエラーを修復できません; コンパイルを中止します。 cl.exe の実行エラー T_S_xxx.exe - エラー 24、警告 0
#include <AfxCmn.h> を追加.
MAPI の MapiFileDesc の配列
MFC を使用している方法では,
LateDelete ld ; // MultiByte の必要があるようなので,UNICODE の時のバッファをここに登録 // 添付ファイルの準備 CArray<MapiFileDesc,MapiFileDesc> fileDescA ; int fileCount = 0 ; int index = 0 ; for (index=0 ; index<PathNames.GetSize() ; index++) { CString pathName = PathNames[index] ; if (::FileIsNothing (pathName)) { continue ; } if (::FileIsDirectory(pathName)) { continue ; } MapiFileDesc fileDesc ; memset(&fileDesc,0,sizeof(MapiFileDesc)) ; fileDesc.nPosition = (ULONG)-1 ; #ifdef _UNICODE fileDesc.lpszPathName = SendMail__ChangeMultiByte(PathNames[index],&ld) ; fileDesc.lpszFileName = SendMail__ChangeMultiByte(FileNames[index],&ld) ; #else fileDesc.lpszPathName = LPSTR(LPCTSTR(PathNames[index])) ; fileDesc.lpszFileName = LPSTR(LPCTSTR(FileNames[index])) ; #endif fileDescA.Add(fileDesc) ; fileCount++ ; }
MFC を使用しないコードは,
std::vector<MapiFileDesc> fileDescA ; std::vector<std::string> pathNameA ; std::vector<std::string> fileNameA ; int index = 0 ; { for (index=0 ; index<PathNames.GetSize() ; index++) { { tstring pathName = PathNames[index] ; if (::File_IsNothing (pathName)) { continue ; } if (::File_IsDirectory(pathName)) { continue ; } } std::string pathName= ::To__string(PathNames[index]) ; std::string fileName= ::To__string(FileNames[index]) ; pathNameA.push_back(pathName) ; fileNameA.push_back(fileName) ; } { for (size_t index=0 ; index<pathNameA.size()&&index<fileNameA.size() ; index++) { MapiFileDesc fileDesc ; memset(&fileDesc,0,sizeof(MapiFileDesc)) ; fileDesc.nPosition = (ULONG)-1 ; fileDesc.lpszPathName = &(pathNameA[index])[0] ; fileDesc.lpszFileName = &(fileNameA[index])[0] ; fileDescA.push_back(fileDesc) ; } } }
詳しくは見てないが,幾つかの方法が書かれていたので
Sending Email with MAPI
MapiRecipDesc.lpszAddress の “smtp:”
以前コードを直したのが 2002/4 であまり情報がなかった様に思う.
個人的に書いた内容が「Outlook で配信不能になる」
参考になりそうな所
Email mit Dateien perWinAPI versenden??
MAPISendMail
MSDN MapiRecipDesc structure
Sending email using MAPI causes error on ‘ResolveName’ function in Window7
MAPI を使用した複数ファイルの送信
S_Mail.hxx
空のコンソール AP で C2065 C2146
空のコンソール AP プロジェクトで,ビルドすると
--------------------構成: MkBG_up - Win32 Debug-------------------- コンパイル中... MkBG_up.cpp \\devs\documents\develop\_.src\__cpr_\straryfn.hxx(254) : error C2065: 'MessageCon' : 定義されていない識別子です。 \\devs\documents\develop\_.src\__cpr_\straryfn.hxx(254) : error C2146: 構文エラー : ';' が、識別子 'bar' の前に必要です。 \\devs\documents\develop\_.src\__cpr_\straryfn.hxx(254) : error C2065: 'bar' : 定義されていない識別子です。 \\devs\documents\develop\_.src\__cpr_\straryfn.hxx(258) : error C2228: '.SetBarInc' : 左側がクラス、構造体、共用体ではありません。 \\devs\documents\develop\_.src\__iwao\messbar.hxx(23) : warning C4005: 'MessageBar' : マクロが再定義されました。 s:\develop\vc_test\_3d\mkbg_up\mkbg_up.cpp(19) : 'MessageBar' の前の定義を確認してください \\devs\documents\develop\_.src\__cpr_\openfile.hxx(56) : error C2146: 構文エラー : ';' が、識別子 'bar' の前に必要です。 \\devs\documents\develop\_.src\__cpr_\openfile.hxx(66) : error C2228: '.SetBarInc' : 左側がクラス、構造体、共用体ではありません。 \\devs\documents\develop\_.src\__iwao\enumfile.hxx(342) : error C2146: 構文エラー : ';' が、識別子 'bar' の前に必要です。 \\devs\documents\develop\_.src\__iwao\enumfile.hxx(346) : error C2228: '.SetBarInc' : 左側がクラス、構造体、共用体ではありません。 \\devs\documents\develop\_.src\__iwao\enumfile.hxx(412) : error C2146: 構文エラー : ';' が、識別子 'bar' の前に必要です。 \\devs\documents\develop\_.src\__iwao\enumfile.hxx(419) : error C2228: '.SetBarMax' : 左側がクラス、構造体、共用体ではありません。 \\devs\documents\develop\_.src\__iwao\enumfile.hxx(420) : error C2228: '.SetBarInc' : 左側がクラス、構造体、共用体ではありません。 .... \\devs\documents\develop\_.src\__iwao\f_copyfn.hxx(66) : error C2146: 構文エラー : ';' が、識別子 'bar' の前に必要です。 \\devs\documents\develop\_.src\__iwao\f_copyfn.hxx(67) : error C2228: '.SetBar' : 左側がクラス、構造体、共用体ではありません。 \\devs\documents\develop\_.src\__iwao\f_copyfn.hxx(68) : error C2228: '.SetBar' : 左側がクラス、構造体、共用体ではありません。 \\devs\documents\develop\_.src\__iwao\f_copyfn.hxx(72) : error C2228: '.SetBarInc' : 左側がクラス、構造体、共用体ではありません。 cl.exe の実行エラー MkBG_up.exe - エラー 53、警告 1
リビルドすると通る.
「プリコンパイル済みヘッダーを自動的に使用」になっているためで,
「プリコンパイル済みヘッダを使用しない」にするか,pch を正しく指定する.
半年ほど前にも同じ記事を書いてた.
VC 6 LNK2001 __beginthreadex
空のコンソール AP プロジェクトで,Afx.h を追加でインクルードしてビルドすると,
--------------------構成: MkBG_up - Win32 Debug-------------------- リンク中... nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__endthreadex" は未解決です nafxcwd.lib(thrdcore.obj) : error LNK2001: 外部シンボル "__beginthreadex" は未解決です c:\Temp\Test_3D\MkBG_up\Debug.060/MkBG_up.exe : fatal error LNK1120: 外部参照 2 が未解決です。 link.exe の実行エラー MkBG_up.exe - エラー 3、警告 0
プロジェクトの設定で「共有 DLL で MFC を使用」などに変更.
2018/06/29 追記
エラーが出た直後の場合は,リビルドが必要.
Cardboard と WebGL
Cardboard で撮った画像を,WebGL の背景として利用してみた.
もう少しうまく貼れればと思うが,方法がわからない.
球に貼っているため縦方向に引き伸ばされてしまう.
以下,画像は 横:縦 = 2:1 に編集している.
このすぐ下は,SceneJS を使用したもの.
2018/04/27 画像をアップロードできるページ
360度パノラマ画像の表示
あなたのサイト … を読み込めません
メールを確認していると,
iwaoodn さん、こんにちは。
2018年3月29日 (木) 10:55 AMに確認しましたが、あなたのサイト http://mish.myds.me/wordpress/dev を読み込めませんでした。
Your site is returning a 403 error, which normally indicates that your host’s security measures are blocking our monitoring requests. Please have them confirm that they are not blocking any requests from our user agent.
引き続きサイトが停止しているようであれば、ホスティング事業者に助けを求めた方がよいでしょう。サイトが再び稼働してオンラインになれば、もう一度お知らせします。
View your site’s activity to investigate when and perhaps why it went down.
モニターについてもっと詳しく
このメールが届いた理由
You are receiving this email because you have activated Jetpack Monitor on your site. If you need to contact support, please include this reference: [136721373/blocked].
Manage your email settings
Automattic, Inc., 60 29th Street #343, San Francisco, CA 94110, USA
Automattic は Jetpack、WordPress.com、WooCommerce などの運営会社です。600名以上の従業員が50以上の都市で働いており、常時社員募集中です。
LAN 内からアクセスは特に問題がない.
Moto G5 で外からアクセスすると 403 .
WSR-300HP が不安定なことが影響したのか?
Aterm BL190HW,WSR-300HP,DS116 を再起動して,うまく動作する様になったことを確認.
送信された URL に noindex タグが…
以前から,Search Console で次のような状態になっていた.
http://mish.myds.me/wordpress/i-tools/ に関するメッセージを表示 »
サイト http://mish.myds.me/wordpress/i-tools/ の インデックス登録の対象範囲 に関する問題の修正を確認しています
http://mish.myds.me/wordpress/i-tools/ の所有者様
弊社では、貴サイトの インデックス登録の対象範囲 に関する問題の修正について確認を開始いたしました。具体的には、6 ページに現在影響を及ぼしている「送信された URL に noindex タグが追加されています」について確認しております。
テストが完了しましたら、結果をお送りいたします。以下のリンクにアクセスして、テストの進捗状況をご確認いただくこともできます。
調べてみると,html のソースに「All in One SEO Pack」とコメントがある.
「All in One SEO」-「一般設定」内の「Noindex 設定」を意図した状態に変更して対応.
WSR-300HP が不安定?
2017/07 に追加した,WSR-300HP の Wi-Fi が最近不安定になり始めた?
先週一度,昨日,今日.
外には接続せずLAN 内のみでの運用.有線は問題なく動作している.
「無線LAN設定」の「有効」のチェックを外して,またチェックして対応している.
ファームウェアのバージョンは 2.40 なので,これで良さそう.
暫く落ち着いていたように思うが,昨日からまた調子が悪い.
個人的に,このメーカー製との相性か?
2019/02/20
いつからかは忘れたが,DS115j に接続していた WLI-UC-AG300N を外してから安定している様に思う.
DS116 は WLI-UC-AG300N を使用して,このルータと接続している.
B-Spline
B-Spline ノットベクトル
v_double BS_make_knot (const Vd4A& pnts,const size_t order) { v_double knot ; size_t degree = order - 1 ; { for (size_t index0=0 ; index0< degree ; index0++) { knot.push_back(0) ; } for (size_t index_=0 ; index_< pnts.size()-degree ; index_++) { knot.push_back(index_) ; } for (size_t indexL=0 ; indexL< degree+1 ; indexL++) { knot.push_back(pnts.size()-degree) ; } } return knot ; } 「制御点 8 個,次数(degree) 2」で求まったノットは, 0 0 0 1 2 3 4 5 6 6 6
B-Spline basis
3D グラフィックスのための数学入門 157 ページをコードに. コードは,kodatuno を参考にさせてもらった.
double BS_basis (const double t,c_v_double& knot,const long order,const long i) { if (order <= 0) { return 0. ; } if (order == 1) { // Ni,0(t) if (t == knot[knot.size()-1]) { if (knot[i]<=t && t<=knot[i+1]) { return 1. ; } else { return 0. ; } } else { if (knot[i]<=t && t< knot[i+1]) { return 1. ; } else { return 0. ; } } } else { double n1 = 0 ; // (*/0) --> n = 0 double n2 = 0 ; double d1 = knot[i+order-1] - knot[i ] ; // T(i+k) -T(i) double d2 = knot[i+order-0] - knot[i+1] ; // T(i+k+1)-T(i+1) if (!::V1_is_near<double<(d1,0)) { n1 = t - knot[i] ; // t - T(i) n1 = n1 * BS_basis(t,knot,order-1,i ) ; // N(i, k-1)(t) n1 = n1 / d1 ; } if (!::V1_is_near<double<(d2,0)) { n2 = knot[i+order-0] - t ; // T(i+k+1)-t n2 = n2 * BS_basis(t,knot,order-1,i+1) ; // N(i+1,k-1)(t) n2 = n2 / d2 ; } return (n1 + n2) ; } return -1. ; }
double BS_basis (const double t,const long order,const long i) { if (order <= 0) { return 0. ; } if (order == 1) { // Ni,0(t) if (i<=t && t< i+1) { return 1. ; } else { return 0. ; } } else { double n1 = 0 ; double n2 = 0 ; double d1 = order - 1 ; // k double d2 = order - 1 ; // k if (!::V1_is_near<double<(d1,0)) { n1 = t - i ; // t-i n1 = n1 * BS_basis(t,order-1,i ) ; // N(i ,k-1) n1 = n1 / d1 ; } if (!::V1_is_near<double<(d2,0)) { n2 = (i+order-0) - t ; // i+k+1 - t n2 = n2 * BS_basis(t,order-1,i+1) ; // N(i+1,k-1) n2 = n2 / d2 ; } return (n1 + n2) ; } return -1. ; }
long pt_count = 7 ; v_vd_n.resize(pt_count) ; for (size_t index=0 ; index<10 ; index++) { for (size_t index_d=0 ; index_d<div_c ; index_d++) { double t = double(index*div_c + index_d)/div_c ; for (size_t i=0 ; i<pt_count ; i++) { double r = ::BS_basis(t,order,i) ; Vd3A v3a = v_vd_n[i] ; Vd3 v(v3a.size(),r*100,0) ; v3a.push_back(v) ; v_vd_n[i] = v3a ; } } }
BRD-UT16WX その後 – 2
あまり使用しない BD ドライブ.
BD レコーダ周りを片付けていたら,以前買った Home Alone 1,2 が出てきた.
これを PC で見ようと思ったが,…
再生できない? なんで?
前回 見ることができた BTTF も見れなくなっている.
DVD は問題ない.
DBR-T2007 追加
T460 の調子が悪くなったので追加.
T460 と並べて設置.
「リモコンコード」を T460 と同じコードを設定してしまったため,両方が反応する様になってしまった.
T2007 を「リモコンコード3」に変更して,意図した動作になった.
口コミではあまり良くない評価も見られるが,簡単に操作した限りは T460 と同じ様な感じ.
DiXiM Digital TV plus で,T2007 も表示される.
あまり意味はないが,Moto G5 の「テレキングプレイ」で T2007 の TV を見られることを確認.
Rational B-Spline
Vd4 として w に設定してみたが,これで良いのか?
Vd3A b_spline (const Vd4& q0,const Vd4& q1,const Vd4& q2,const Vd4& q3,const long div_c) { Vd3A vd3a ; for (long index=0 ; index<=div_c ; index++) { double t = 1./div_c*index ; double n0 = 1./6 * (1.-t)*(1.-t)*(1.-t) ; double n1 = 1./2 * t*t*t - t*t + 2./3 ; double n2 =-1./2 * t*t*t + 1./2 * t*t + 1./2 *t + 1./6 ; double n3 = 1./6 * t*t*t ; double px = ( (n0*q0.x)*q0.w + (n1*q1.x)*q1.w + (n2*q2.x)*q2.w + (n3*q3.x)*q3.w ) / ((n0)*q0.w + (n1)*q1.w + (n2)*q2.w + (n3)*q3.w) ; double py = ( (n0*q0.y)*q0.w + (n1*q1.y)*q1.w + (n2*q2.y)*q2.w + (n3*q3.y)*q3.w ) / ((n0)*q0.w + (n1)*q1.w + (n2)*q2.w + (n3)*q3.w) ; double pz = ( (n0*q0.z)*q0.w + (n1*q1.z)*q1.w + (n2*q2.z)*q2.w + (n3*q3.z)*q3.w ) / ((n0)*q0.w + (n1)*q1.w + (n2)*q2.w + (n3)*q3.w) ; vd3a.push_back(Vd3(px,py,pz)) ; } return vd3a ; }