亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? matlab3dobject.cpp

?? VC&Matlab混合編程實現無線電導航指示器
?? CPP
字號:
// Matlab3DObject.cpp: implementation of the CMatlab3DObject class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "RADIO.h"
#include "Matlab3DObject.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMatlab3DObject::CMatlab3DObject(mwArray mwParentAx)
{
 m_patchList.SetSize(0,3);
 m_OriginalDataList.SetSize(0,3);
 m_mwhParentAx=mwParentAx;

}

CMatlab3DObject::CMatlab3DObject()
{
 m_patchList.SetSize(0,3);
 m_OriginalDataList.SetSize(0,3);
}

CMatlab3DObject::~CMatlab3DObject()
{

}

void CMatlab3DObject::AddPatchElement(mwArray mwPatch)
{   
	mwArray zdata=get(mwPatch,"zdata");
	if(tobool(isempty(zdata))){
		mwArray newzdata=zeros(1,length(get(mwPatch,"xdata")));
		Vset(mwPatch,"zdata",newzdata);
	}
	m_patchList.Add(mwPatch);
	mwArray x=get(mwPatch,"xdata");
	mwArray y=get(mwPatch,"ydata");
	mwArray z=get(mwPatch,"zdata");
	mwArray c;
	c.cell(1)=x;c.cell(2)=y;c.cell(3)=z;
	m_OriginalDataList.Add(c);
}

mwArray CMatlab3DObject::GetPatchElements()
{
	int n=m_patchList.GetSize();
	if(n<=0) return mwArray(-1);
	mwArray mwElements=(mwArray)m_patchList[0];
	for (int i=1;i<n;i++){
		mwElements=horzcat(mwElements,(mwArray)m_patchList[i]);
	}
	return mwElements;
}

mwArray CMatlab3DObject::GetParentAx()
{
return m_mwhParentAx;
}

void CMatlab3DObject::Show()
{//顯示
int n=m_patchList.GetSize();
	if(n<=0) return ;
	mwArray mwElements=(mwArray)m_patchList[0];
	for (int i=1;i<n;i++){
		mwElements=horzcat(mwElements,(mwArray)m_patchList[i]);
	}
	Vset(mwElements,"visible","on");
}

void CMatlab3DObject::Hide()
{//隱藏
int n=m_patchList.GetSize();
	if(n<=0) return ;
	mwArray mwElements=(mwArray)m_patchList[0];
	for (int i=1;i<n;i++){
		mwElements=horzcat(mwElements,(mwArray)m_patchList[i]);
	}
	Vset(mwElements,"visible","off");
}

void CMatlab3DObject::SetParent(mwArray mwParent)
{
 m_mwhParentAx=mwParent;
}

void CMatlab3DObject::OffSet(double x, double y, double z)
{//偏置
	int n=m_patchList.GetSize();
	if(n<=0) return ;
	mwArray mwElement,d1,d2,d3;
	for (int i=0;i<n;i++){
		mwElement=m_patchList[i];
        d1=get(mwElement,"xdata");
		d2=get(mwElement,"ydata");
		d3=get(mwElement,"zdata");
		Vset(mwElement,"xdata",d1+x,"ydata",d2+y,"zdata",d3+z);
	}
}



void CMatlab3DObject::Scale(double x, double y, double z)
{
//縮放	
	int n=m_patchList.GetSize();
	if(n<=0) return ;
	mwArray mwElements,d1,d2,d3;
	for (int i=0;i<n;i++){
		mwElements=(mwArray)m_patchList[i];
        d1=get(mwElements,"xdata");
		d2=get(mwElements,"ydata");
		d3=get(mwElements,"zdata");
		Vset(mwElements,"xdata",d1*x,"ydata",d2*y,"zdata",d3*z);
	}	
}

void CMatlab3DObject::ResetToOriginal()
{//設為原始值
	int n=m_patchList.GetSize();
	if(n<=0) return ;
	mwArray mwElement,mwData,d1,d2,d3;
	for (int i=0;i<n;i++){
		mwElement=(mwArray)m_patchList[i];
		mwData=(mwArray)m_OriginalDataList[i];
        d1=mwData.cell(1);
		d2=mwData.cell(2);
		d3=mwData.cell(3);
		Vset(mwElement,"xdata",d1,"ydata",d2,"zdata",d3);
	}	
}

void CMatlab3DObject::ScaleOriginal(double x, double y, double z)
{//相對于原始大小縮放
	mwArray mwData,mwElement,d1,d2,d3;
	int n=m_OriginalDataList.GetSize();
	if(n<=0) return ;
	for (int i=0;i<n;i++){
		mwData=(mwArray)m_OriginalDataList[i];
		mwElement=(mwArray)m_patchList[i];
        d1=mwData.cell(1);
		d2=mwData.cell(2);
		d3=mwData.cell(3);
		Vset(mwElement,"xdata",d1*x,"ydata",d2*y,"zdata",d3*z);
	}	
}

void CMatlab3DObject::OffSetOriginal(double x, double y, double z)
{//相對于原始位置移動
	mwArray mwData,mwElement,d1,d2,d3;
	int n=m_OriginalDataList.GetSize();
	if(n<=0) return ;
	for (int i=0;i<n;i++){
		mwData=(mwArray)m_OriginalDataList[i];
		mwElement=(mwArray)m_patchList[i];
        d1=mwData.cell(1);
		d2=mwData.cell(2);
		d3=mwData.cell(3);
		Vset(mwElement,"xdata",d1+x,"ydata",d2+y,"zdata",d3+z);
	}	
}



void CMatlab3DObject::Rotate( mwArray azel, mwArray alpha, mwArray origin)
{
//指定方向和原點轉
// ROTATE([THETA PHI],ALPHA,[x0,y0,z0]) 
//或ROTATE([X Y Z],ALPHA,[x0,y0,z0]) 
//逆時針轉為正。角度單位是度

	mwArray theta,phi,u;
	mwArray alph,cosa,sina,vera;
	mwArray x,y,z;
	mwArray rot;
	mwArray t;
	mwArray skip;
	mwArray m,n;
	mwArray newxyz,newx,newy,newz;
	mwArray p;
	mwArray h=GetPatchElements();
    // 得到轉軸的單位矢量
	if (tobool(prod(size(azel)) == mwArray(2)))//theta, phi
	{ 
		theta = pi()*azel(1)/mwArray(180);
		phi = pi()*azel(2)/mwArray(180);
		u = horzcat(cos(phi)*cos(theta), cos(phi)*sin(theta),sin(phi));
	}
	else if (tobool(prod(size(azel)) == mwArray(3)))// 方向向量
	{   
		u = azel(colon())/norm(azel);
	}
	
	alph = alpha*pi()/mwArray(180);
	cosa = cos(alph);
	sina = sin(alph);
	vera = mwArray(1) - cosa;
	x = u(1);
	y = u(2);
	z = u(3);
	rot =transpose(vertcat(horzcat(cosa+x*x*vera ,x*y*vera-z*sina ,x*z*vera+y*sina),
	                       horzcat(x*y*vera+z*sina ,cosa+y*y*vera, y*z*vera-x*sina),
                           horzcat(x*z*vera-y*sina ,y*z*vera+x*sina ,cosa+z*z*vera)));
	
	for (int i=1;i<=(int)(prod(size(h)).ExtractScalar(1));i++)
	{
		t = get(h(i),"type");
		skip = mwArray(0);
		if (tobool(strcmp(t,"surface")) || tobool(strcmp(t,"patch")) || tobool(strcmp(t,"line")))
		{
			x = get(h(i),"xdata");
			y = get(h(i),"ydata");
			z = get(h(i),"zdata");
			if (tobool(isempty(z)))
			{
				z = -origin(3)*ones(size(y));
			}
			m= size(z,1);
			n=size(z,2);
			if (tobool(prod(size(x)) < m*n))
			{
				x = meshgrid(&y,x,y);
			}
		}
		else if (tobool(strcmp(t,"text")))
			{
				p = get(h(i),"position");
				x = p(1); y = p(2); z = p(3);
			}
		else if (tobool(strcmp(t,"image")))
			{
				x = get(h(i),"xdata");
				y = get(h(i),"ydata");
				z = zeros(size(x));
			}
		else
			{
				skip = mwArray(1);
			}		
		
		if (!tobool(skip))
		{
			m=size(x,1);
			n=size(x,2);
			newxyz = horzcat(x(colon())-origin(1), y(colon())-origin(2), z(colon())-origin(3));
			newxyz = newxyz*rot;
			newx = origin(1) + reshape(newxyz(colon(),1),m,n);
			newy = origin(2) + reshape(newxyz(colon(),2),m,n);
			newz = origin(3) + reshape(newxyz(colon(),3),m,n);
			
			if (tobool(strcmp(t,"surface")) || tobool(strcmp(t,"patch")) || tobool(strcmp(t,"line")))
			{
				Vset(h(i),"xdata",newx,"ydata",newy,"zdata",newz);
			}
			else if (tobool(strcmp(t,"text")))
			{
				Vset(h(i),"position",horzcat(newx,newy,newz));
			}
			else if (tobool(strcmp(t,"image")))
			{
				Vset(h(i),"xdata",newx,"ydata",newy);
			}
		}
	}	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国产丝袜在线播放| 欧美日韩免费一区二区三区视频 | 91精品国产欧美一区二区成人| 国产成人在线看| 国产毛片精品国产一区二区三区| 裸体健美xxxx欧美裸体表演| 青青草成人在线观看| 奇米影视7777精品一区二区| 久久精品国产精品亚洲精品 | 国产在线观看一区二区| 国产一区三区三区| 国产精品一区二区久激情瑜伽| 国内精品久久久久影院一蜜桃| 狠狠狠色丁香婷婷综合激情| 成人一区二区三区视频在线观看 | 欧美日韩国产色站一区二区三区| 这里是久久伊人| 久久久久99精品一区| 1024精品合集| 奇米影视7777精品一区二区| 国产高清精品在线| 在线观看免费视频综合| 欧美妇女性影城| 久久嫩草精品久久久精品| 亚洲品质自拍视频| 美女视频黄 久久| av在线这里只有精品| 欧美欧美午夜aⅴ在线观看| 久久综合狠狠综合久久综合88| 国产精品美女久久久久久久久久久 | 亚洲国产日韩在线一区模特 | k8久久久一区二区三区| 欧美在线观看视频一区二区三区 | 91国偷自产一区二区三区观看 | 精品国一区二区三区| 国产精品乱人伦中文| 日本欧美韩国一区三区| www.欧美.com| 日韩视频一区二区| 亚洲摸摸操操av| 国产一区二区视频在线| 欧美视频第二页| 中文字幕不卡在线| 秋霞影院一区二区| 91久久久免费一区二区| 久久夜色精品国产噜噜av| 亚洲va韩国va欧美va| 成人国产精品免费网站| 精品久久国产字幕高潮| 午夜在线成人av| 99免费精品在线| 国产夜色精品一区二区av| 日韩av不卡一区二区| 色综合视频在线观看| 国产日韩高清在线| 精品无人区卡一卡二卡三乱码免费卡| 91同城在线观看| 中文字幕第一区| 夫妻av一区二区| 26uuu另类欧美亚洲曰本| 日韩激情一区二区| 色偷偷成人一区二区三区91| 国产精品女主播在线观看| 精品中文字幕一区二区| 制服丝袜国产精品| 五月天欧美精品| 这里只有精品电影| 日本中文字幕一区| 欧美一级片在线看| 免费成人在线播放| 欧美大片在线观看一区二区| 日本成人在线视频网站| 欧美一区二区三区免费| 日韩成人免费看| 日韩午夜精品视频| 美女尤物国产一区| 欧美一级二级三级蜜桃| 蜜桃av一区二区| 精品第一国产综合精品aⅴ| 国产自产2019最新不卡| 国产亚洲成av人在线观看导航| 国产一区二区福利| 国产精品网站导航| 在线观看区一区二| 蜜臀av在线播放一区二区三区| 精品播放一区二区| 成人中文字幕电影| 亚洲精品视频自拍| 欧美日本国产视频| 精品一区二区三区日韩| 日韩一区二区三区在线| 国产精品久久久久久久久免费桃花 | 日韩精品一区二区三区老鸭窝 | www精品美女久久久tv| 欧美综合久久久| 大尺度一区二区| 激情五月婷婷综合网| 日本特黄久久久高潮| 亚洲妇熟xx妇色黄| 亚洲国产欧美日韩另类综合| 中文字幕一区二区在线播放| 久久精品一区八戒影视| 久久午夜免费电影| 欧美一区日韩一区| 91精品国产综合久久婷婷香蕉| 在线亚洲高清视频| 欧美视频在线一区二区三区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲色图都市小说| 亚洲色图欧美在线| 亚洲老妇xxxxxx| 亚洲国产视频在线| 日韩影院在线观看| 男男gaygay亚洲| 麻豆免费看一区二区三区| 另类小说视频一区二区| 精品一区二区三区香蕉蜜桃| 国产乱子伦视频一区二区三区 | 中文字幕一区三区| 成人欧美一区二区三区黑人麻豆 | 成人欧美一区二区三区小说| 综合色中文字幕| 亚洲成人激情av| 美腿丝袜在线亚洲一区| 国产精品18久久久| av不卡在线观看| 欧美亚洲高清一区| 欧美一级免费大片| 久久日一线二线三线suv| 久久综合中文字幕| 国产精品国产三级国产有无不卡| 亚洲色图制服诱惑 | 亚洲国产欧美一区二区三区丁香婷| 亚洲图片一区二区| 麻豆91精品视频| 不卡大黄网站免费看| 91精彩视频在线| 欧美va亚洲va国产综合| 欧美国产97人人爽人人喊| 亚洲小说春色综合另类电影| 蜜臀a∨国产成人精品| 成人免费观看男女羞羞视频| 91久久国产最好的精华液| 3d动漫精品啪啪1区2区免费| 久久久久久久精| 亚洲国产精品久久人人爱| 国产精品一区二区久久精品爱涩| av在线综合网| 精品久久人人做人人爽| 亚洲欧美日本在线| 韩国v欧美v亚洲v日本v| 91猫先生在线| 亚洲精品一区二区三区香蕉| 亚洲三级免费观看| 精品亚洲aⅴ乱码一区二区三区| 97国产一区二区| 欧美va亚洲va香蕉在线| 亚洲精品va在线观看| 国产成人综合亚洲91猫咪| 欧美精品视频www在线观看| 中文字幕欧美激情| 久久99蜜桃精品| 在线欧美一区二区| 国产女主播视频一区二区| 丝袜脚交一区二区| 色综合网色综合| 国产午夜精品一区二区三区四区| 亚洲成人一区在线| 色综合欧美在线| 欧美高清在线一区| 国产自产v一区二区三区c| 欧美日韩午夜在线| 亚洲人妖av一区二区| 国产精品一区二区在线播放 | 亚洲欧美日韩国产手机在线| 国产精品99久久久| 精品美女在线播放| 亚洲3atv精品一区二区三区| 99视频在线精品| 国产欧美视频一区二区| 黄色小说综合网站| 欧美成人乱码一区二区三区| 天天做天天摸天天爽国产一区| 色视频成人在线观看免| 亚洲欧洲国产专区| 成+人+亚洲+综合天堂| 欧美极品美女视频| 成人一区二区视频| 欧美激情一区二区三区| 国产99久久久国产精品| 国产午夜精品美女毛片视频| 激情综合五月婷婷| 精品国产乱码91久久久久久网站| 日韩va欧美va亚洲va久久| 欧美一区二区三区视频免费播放| 亚洲成人免费电影| 91精品国产综合久久福利软件| 日韩精品久久理论片| 337p亚洲精品色噜噜| 蜜桃精品视频在线|