ホーム » VC » 2D 配列の配列の ::PolyPolygon

2025年2月
 1
2345678
9101112131415
16171819202122
232425262728  

カテゴリー

アーカイブ

ブログ統計情報

  • 106,058 アクセス


2D 配列の配列の ::PolyPolygon

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) ;
		}
	}

こんな感じで使える.
::PolyPolygon  ( HDC , v_Vd2A )
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 ;
		}

n点からなる多角形の面積を求める
多角形の面積を求める
多角形の面積(凸じゃなくても可)は外積で求まる

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.
%d人のブロガーが「いいね」をつけました。