2 年位前に書いた,2D 配列を表示するコード.
BOOL PolyPolygon (HDC hDC,const v_Vd2A& v_v2a)
{
std::vector <POINT> points ;
std::vector <int> counts ;
for (size_t index=0 ; index<v_v2a.size() ; index++) {
const Vd2A& v2a = v_v2a[index] ;
for (size_t p_index=0 ; p_index<v2a.size() ; p_index++) {
Vd2 vd2 = v2a[p_index] ;
POINT pt2 = { long(vd2.x) , long(vd2.y) } ;
points.push_back(pt2) ;
}
counts.push_back(int(v2a.size())) ;
}
return ::PolyPolygon(hDC,&points[0],&counts[0],int(counts.size())) ;
}
それ以前は,コンソール AP で DC を使うことを考えてなかった.
また最近は,コンソール AP での GDI 描画もしていなかった.
今やろうと思っていることで,個人的なコードを調べていて
{
HWND hWnd = ::GetConsoleWindow() ;
{
vv_PLF d_plf = vvplf ;
{
d_plf = ::PLF_Translate(d_plf,Vd3(200)) ;
}
::ClearWindow(hWnd) ;
HDC hDC = ::GetDC(hWnd) ;
{
v_Vd2A v_v2a = ::ToVd2A(d_plf) ;
::PolyPolygon(hDC,v_v2a) ;
}
::ReleaseDC(hWnd,hDC) ;
}
}
こんな感じで使える.
WebGL での 3D データ表示
やりたかったのは,三角形分割で正しくできたかどうか?
Vd3A v3a = ::ToVd3A(pts) ;
{
Vd3 nv = ::V3_GetNormal(v3a) ;
std::tout << nv.Length() << std::endl ;
}
{
v_Vd3A t_a = ::V3_Triangulation(v3a) ;
Vd3 n_v ;
for (size_t index=0 ; index<t_a.size() ; index++) {
Vd3A tri = t_a[index] ;
Vd3 tnv = ::V3_GetNormal(tri) ;
n_v += tnv ;
}
std::tout << n_v.Length() << std::endl ;
}