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

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

?? fractalexview.cpp

?? 自己寫的一個分形程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// FractalExView.cpp : implementation of the CFractalExView class
//

#include "stdafx.h"
#include "FractalEx.h"

#include "FractalExView.h"
#include "IterationDialog.h"
#include "InfoDialog.h"
#include "JuliaDialog.h"
#include "PertDialog.h"

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

/////////////////////////////////////////////////////////////////////////////
// CFractalExView

IMPLEMENT_DYNCREATE(CFractalExView, CFormView)

BEGIN_MESSAGE_MAP(CFractalExView, CFormView)
	//{{AFX_MSG_MAP(CFractalExView)
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()
	ON_WM_MOUSEMOVE()
	ON_WM_PAINT()
	ON_WM_RBUTTONDOWN()
	ON_WM_SIZE()
	ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
	ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo)
	ON_COMMAND(ID_EDIT_REDO, OnEditRedo)
	ON_UPDATE_COMMAND_UI(ID_EDIT_REDO, OnUpdateEditRedo)
	ON_WM_DESTROY()
	ON_COMMAND(ID_ZOOM_IN, OnZoomIn)
	ON_COMMAND(ID_ZOOM_OUT, OnZoomOut)
	ON_UPDATE_COMMAND_UI(ID_ZOOM_IN, OnUpdateZoomIn)
	ON_COMMAND(ID_ZOOM_MOVE, OnZoomMove)
	ON_UPDATE_COMMAND_UI(ID_ZOOM_MOVE, OnUpdateZoomMove)
	ON_UPDATE_COMMAND_UI(ID_ZOOM_OUT, OnUpdateZoomOut)
	ON_WM_SETCURSOR()
	ON_COMMAND(ID_FILE_EXPORT, OnFileExport)
	ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
	ON_COMMAND(ID_ONIDLE, OnOnidle)
	ON_COMMAND(ID_FRACTAL_CUSTOM, OnFractalCustom)
	ON_UPDATE_COMMAND_UI(ID_FRACTAL_CUSTOM, OnUpdateFractalCustom)
	ON_COMMAND(ID_ZOOM_RESET, OnZoomReset)
	ON_COMMAND(ID_FRACTAL_OTHER, OnFractalOther)
	ON_UPDATE_COMMAND_UI(ID_FRACTAL_OTHER, OnUpdateFractalOther)
	ON_COMMAND(ID_SET_ITERATION, OnSetIteration)
	ON_COMMAND(ID_FRACTAL_VIEWINFO, OnFractalViewinfo)
	ON_UPDATE_COMMAND_UI(ID_FRACTAL_MODE_JULIA, OnUpdateFractalModeJulia)
	ON_UPDATE_COMMAND_UI(ID_FRACTAL_MODE_MAND, OnUpdateFractalModeMand)
	ON_UPDATE_COMMAND_UI(ID_FRACTAL_MODE_PERT, OnUpdateFractalModePert)
	ON_COMMAND(ID_FRACTAL_MODE_JULIA, OnFractalModeJulia)
	ON_COMMAND(ID_FRACTAL_MODE_MAND, OnFractalModeMand)
	ON_COMMAND(ID_FRACTAL_MODE_PERT, OnFractalModePert)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND_RANGE(ID_FRACTAL_FIRST, ID_FRACTAL_LAST, OnFractaltype)
	ON_UPDATE_COMMAND_UI_RANGE(ID_FRACTAL_FIRST, ID_FRACTAL_LAST, OnUpdateFractaltype)
	ON_COMMAND_RANGE(ID_COLOR_SET0, ID_COLOR_SET4, OnColorset)
	ON_UPDATE_COMMAND_UI_RANGE(ID_COLOR_SET0, ID_COLOR_SET4, OnUpdateColorset)
	ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
	ON_UPDATE_COMMAND_UI(ID_INDICATOR_COOR, OnUpdateCoorIndicator)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFractalExView construction/destruction
CFractalExView::CFractalExView()
	: CFormView(CFractalExView::IDD), ZoomOp(((CMainFrame*)AfxGetMainWnd())->ZoomOp)
{
	//{{AFX_DATA_INIT(CFractalExView)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// TODO: add construction code here
	onceinit=false;
	mousedown=false;
	widhei=1.0;
	nUndoRect=0;
	curUndoRect=0;
	nRedoRect=0;
	pixelinfo=NULL;
	status_coor="坐標";

	CMainFrame* frame=GetMainFrame();
	cur_zoom_in[0]=frame->cur_zoom_in[0];
	cur_zoom_in[ZO_MOVE]=frame->cur_zoom_in[ZO_MOVE];
	cur_zoom_in[ZO_IN]=frame->cur_zoom_in[ZO_IN];
	cur_zoom_in[ZO_OUT]=frame->cur_zoom_in[ZO_OUT];

	CalcFractal=NULL;
	GetFractalData=NULL;
	CalcFractalPoint=NULL;
	hlib=0;
	BuildLib="";
}

CFractalExView::~CFractalExView()
{
	LoadFractalLib();
}

void CFractalExView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFractalExView)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}

BOOL CFractalExView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
	return CFormView::PreCreateWindow(cs);
}

void CFractalExView::OnInitialUpdate()
{
	CFormView::OnInitialUpdate();
	SetScrollSizes(MM_TEXT, CSize(0,0));

	UseColorSet(GetDocument()->colorset, false);
	UndoRect[0]=GetDocument()->myRect;
	onceinit=true;
	CreateMem();
	
	if(GetDocument()->fType==FRACTAL_CUSTOM)
	{
		BuildLib=BuildDll(GetDocument()->expression, GetDocument()->origin, "", false);
		if(BuildLib!="")
			LoadFractalLib(BuildLib);
	}
	else if(GetDocument()->fType==FRACTAL_NONE)
	{	
		if(otherfdlg.DoModal()==IDOK)
		{
			GetDocument()->ResetRect();
			LoadFractalLib(otherfdlg.SelectedLib);
			GetDocument()->fType=FRACTAL_OTHER;
		}
	}
}

/////////////////////////////////////////////////////////////////////////////
// CFractalExView printing

BOOL CFractalExView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CFractalExView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CFractalExView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

void CFractalExView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
	// TODO: add customized printing code here
}

/////////////////////////////////////////////////////////////////////////////
// CFractalExView diagnostics

#ifdef _DEBUG
void CFractalExView::AssertValid() const
{
	CFormView::AssertValid();
}

void CFractalExView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}

CFractalExDoc* CFractalExView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFractalExDoc)));
	return (CFractalExDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CFractalExView message handlers

void CFractalExView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	CClientDC dc(this);
	switch(ZoomOp)
	{
	case ZO_MOVE:
		oldrect=CRect(0,0,wid2-1,hei2-1);
		dc.DrawFocusRect(&oldrect);
		oldpoint=point;
		mousedown=true;
		SetCapture();
		break;
	case ZO_IN:
		oldrect=CRect(0,0,0,0);
		oldpoint=point;
		mousedown=true;
		SetCapture();
		break;
	case ZO_OUT:
		ChangeRect(CRect(point.x-wid2, point.y-hei2, point.x+wid2, point.y+hei2)); 
		break;
	}
	
	CFormView::OnLButtonDown(nFlags, point);
}

void CFractalExView::OnLButtonUp(UINT nFlags, CPoint point) 
{
	switch(ZoomOp)
	{
	case ZO_MOVE:
		if(mousedown)
		{
			CClientDC dc(this);
			dc.DrawFocusRect(&oldrect);
			ReleaseCapture();
			mousedown=false;
			oldrect=CRect(-oldrect.left,-oldrect.top,(wid2-1)*2-oldrect.right,(hei2-1)*2-oldrect.bottom);
			if(nFlags==8)
			{
				NewFractal(CalcSelRect(oldrect));
			}
			else
			{
				ChangeRect(oldrect);
			}
		}
		break;
	case ZO_IN:
		if(mousedown)
		{
			CClientDC dc(this);
			dc.DrawFocusRect(&oldrect);
			ReleaseCapture();
			mousedown=false;

			if(abs(point.x-oldpoint.x)<5)
			{
				ChangeRect(CRect(point.x-wid2/4, point.y-hei2/4, point.x+wid2/4, point.y+hei2/4)); 
			}
			else
			{
				if(nFlags==8)
				{
					NewFractal(CalcSelRect(oldrect));
				}
				else
				{
					ChangeRect(oldrect);
				}
			}
		}
		break;
	case ZO_OUT:
		break;
	}
	
	CFormView::OnLButtonUp(nFlags, point);
}

void CFractalExView::OnMouseMove(UINT nFlags, CPoint point) 
{
	switch(ZoomOp)
	{
	case ZO_MOVE:
		if(mousedown)
		{
			CClientDC dc(this);
			int dx=point.x-oldpoint.x, dy=point.y-oldpoint.y;
			CRect rect=oldrect+CPoint(dx, dy);
			dc.DrawFocusRect(&oldrect);
			oldrect=rect;
			oldpoint=point;
			dc.DrawFocusRect(&rect);
		}
		break;
	case ZO_IN:
		if(mousedown)
		{
			CClientDC dc(this);
			CRect rect;
			if(oldpoint.x<point.x)
				if(oldpoint.y<=point.y)
					rect=CRect(oldpoint.x, oldpoint.y, point.x, (int)(oldpoint.y+(point.x-oldpoint.x)*widhei));
				else
					rect=CRect(oldpoint.x, (int)(oldpoint.y-(point.x-oldpoint.x)*widhei), point.x, oldpoint.y);
			else
				if(oldpoint.y<=point.y)
					rect=CRect(point.x, oldpoint.y, oldpoint.x, (int)(oldpoint.y-(point.x-oldpoint.x)*widhei));
				else
					rect=CRect(point.x, (int)(oldpoint.y+(point.x-oldpoint.x)*widhei), oldpoint.x, oldpoint.y);
			dc.DrawFocusRect(&oldrect);
			oldrect=rect;
			dc.DrawFocusRect(&rect);
		}
		break;
	case ZO_OUT:
		break;
	}

	if(!mousedown)
	{
		datatype a2, b2;
		a2 = point.x*scale + GetDocument()->myRect.left;
		b2 = point.y*scale + GetDocument()->myRect.top;
		PixelInfo *info=(pixelinfo+point.x+(hei2-point.y-1)*wid2);
		status_coor.Format("x=%g, y=%g, l=%d", a2, b2, info->lvl);
	}
	
	CFormView::OnMouseMove(nFlags, point);
}

void CFractalExView::OnRButtonDown(UINT nFlags, CPoint point) 
{
	if(mousedown)
	{
		CClientDC dc(this);
		dc.DrawFocusRect(&oldrect);
		ReleaseCapture();
		mousedown=false;
	}
	else if(ZoomOp== ZO_IN)
		ChangeRect(CRect(point.x-wid2, point.y-hei2, point.x+wid2, point.y+hei2)); 
	
	CFormView::OnRButtonDown(nFlags, point);
}

BOOL CFractalExView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
{
	if(ZoomOp>0)
	{
		SetCursor(cur_zoom_in[ZoomOp]);
		return TRUE;
	}
	else
		return CFormView::OnSetCursor(pWnd, nHitTest, message);
}

void CFractalExView::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	memdib.CopyDC(&dc, 0, 0);
}

void CFractalExView::OnSize(UINT nType, int cx, int cy) 
{
	CFormView::OnSize(nType, cx, cy);
	if(onceinit)
	{
		DeleteMem();
		CreateMem();
		DrawFractal();
	}	
}

void CFractalExView::CreateMem()
{
	CClientDC dc(this);
	CRect rect;
	GetClientRect(&rect);

	wid2=rect.Width();
	hei2=rect.Height();
	pixelinfo=new PixelInfo[wid2*hei2];

	memdib.Create(wid2, hei2);
}

void CFractalExView::DeleteMem()
{
	memdib.Destroy();

	delete[] pixelinfo;
}

void CFractalExView::OnEditUndo() 
{
	if(nUndoRect>0)
	{
		if(--curUndoRect<0)
			curUndoRect+=MAX_UNDO;
		GetDocument()->myRect=UndoRect[curUndoRect];
		nUndoRect--;
		nRedoRect++;
		DrawFractal();
	}
}

void CFractalExView::OnUpdateEditUndo(CCmdUI* pCmdUI) 
{
	if(nUndoRect==0)
		pCmdUI->Enable(false);
}

void CFractalExView::OnEditRedo() 
{
	if(nRedoRect>0)
	{
		if(++curUndoRect>=MAX_UNDO)
			curUndoRect-=MAX_UNDO;
		GetDocument()->myRect=UndoRect[curUndoRect];
		nUndoRect++;
		nRedoRect--;
		DrawFractal();
	}
}

void CFractalExView::OnUpdateEditRedo(CCmdUI* pCmdUI) 
{
	if(nRedoRect==0)
		pCmdUI->Enable(false);
}

void CFractalExView::OnDestroy() 
{
	DeleteMem();
	CFormView::OnDestroy();
}

void CFractalExView::AddUndo(CRectFloat &rc)
{
	if(++nUndoRect>MAX_UNDO-1)
		nUndoRect=MAX_UNDO-1;
	nRedoRect=0;
	if(++curUndoRect>=MAX_UNDO)
		curUndoRect=0;
	UndoRect[curUndoRect]=GetDocument()->myRect;
}

void CFractalExView::ChangeRect(CRect &SelRect)
{//以選中的屏幕坐標改變圖象Rect
	CClientDC dc(this);
	int maxi=2;
	CRect temp;
	CDC memdc;
	memdc.CreateCompatibleDC(&dc);
	CBitmap bm;
	bm.CreateCompatibleBitmap(&dc, wid2, hei2);
	CBitmap* oldbm=memdc.SelectObject(&bm);
	memdc.BitBlt(0, 0, wid2, hei2, &dc, 0, 0, SRCCOPY);
	for(int i=maxi-1;i>=0;i--)
	{
		temp=CRect(SelRect.left*i/maxi, SelRect.top*i/maxi, wid2-(wid2-SelRect.Width())*i/maxi, hei2-(hei2-SelRect.Height())*i/maxi);
		dc.StretchBlt(temp.left, temp.top, temp.right, temp.bottom, &memdc, SelRect.left, SelRect.top, SelRect.Width(), SelRect.Height(), SRCCOPY);
//		dc.DrawFocusRect(&temp);
	}

	memdc.SelectObject(oldbm);
	bm.DeleteObject();
	memdc.DeleteDC();
	
	CRectFloat rc=CalcSelRect(SelRect);
	GetDocument()->myRect=rc;
	AddUndo(rc);

	DrawFractal();
}

CRectFloat CFractalExView::CalcSelRect(CRect& selRect)
{//把鼠標選中的屏幕坐標轉為圖象坐標
	CRectFloat rc;
	rc.left=scale*selRect.left+GetDocument()->myRect.left;
	rc.top=scale*selRect.top+GetDocument()->myRect.top;
	rc.right=scale*selRect.right+GetDocument()->myRect.left;
	rc.bottom=scale*selRect.bottom+GetDocument()->myRect.top;
	return rc;
}

void CFractalExView::OnUpdateZoomIn(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(ZoomOp==ZO_IN);
}
void CFractalExView::OnUpdateZoomOut(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(ZoomOp==ZO_OUT);
}
void CFractalExView::OnUpdateZoomMove(CCmdUI* pCmdUI) 
{
	pCmdUI->SetCheck(ZoomOp==ZO_MOVE);
}
void CFractalExView::OnZoomIn() 
{
	if(ZoomOp==ZO_IN)
		ZoomOp=ZO_NONE;
	else
		ZoomOp=ZO_IN;
}
void CFractalExView::OnZoomOut() 
{
	if(ZoomOp==ZO_OUT)
		ZoomOp=ZO_NONE;
	else
		ZoomOp=ZO_OUT;
}
void CFractalExView::OnZoomMove() 
{
	if(ZoomOp==ZO_MOVE)
		ZoomOp=ZO_NONE;
	else
		ZoomOp=ZO_MOVE;
}

void CFractalExView::OnZoomReset() 
{
	GetDocument()->ResetRect();
	DrawFractal();
}

void CFractalExView::OnFileExport() 
{
	CString strFile, strFilter("24位位圖(*.bmp)|*.bmp||"); 
	CFileDialog fdlg(FALSE, ".bmp", NULL, OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY, strFilter); 
	if( fdlg.DoModal() == IDOK ) 
	{
		strFile = fdlg.GetPathName();
		SaveMemdc(strFile);
	} 
}

void CFractalExView::SaveMemdc(CString filename)//把圖象放入文件
{/***
	HBITMAP hbitmap=(HBITMAP)bm.GetSafeHandle();
	HDC hdc;
	int ibits; 
	WORD wbitcount; 
	DWORD dwpalettesize=0, dwbmbitssize, dwdibsize, dwwritten;
	BITMAP bitmap; 
	BITMAPFILEHEADER bmfhdr; 
	BITMAPINFOHEADER bi; 
	LPBITMAPINFOHEADER lpbi; 
	HANDLE fh, hdib, hpal,holdpal=NULL;
	hdc = memdc.GetSafeHdc();
	ibits = GetDeviceCaps(hdc, BITSPIXEL) * GetDeviceCaps(hdc, PLANES);
	DeleteDC(hdc);
	if (ibits <= 1)
		wbitcount = 1;
	else if (ibits <=4)
		wbitcount = 4;
	else if (ibits <= 8)
		wbitcount = 8;
	else if (ibits <= 24)
		wbitcount = 24;
	if (wbitcount <= 8)
	dwpalettesize = (1 << wbitcount) * sizeof(RGBQUAD);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆国产在线观看| 欧美岛国在线观看| 国产ts人妖一区二区| 精品国产亚洲一区二区三区在线观看| 日本aⅴ精品一区二区三区| 欧美麻豆精品久久久久久| 亚洲国产日韩精品| 欧美日韩国产精选| 678五月天丁香亚洲综合网| 日韩电影免费在线看| 欧美成人午夜电影| 东方欧美亚洲色图在线| 亚洲欧洲精品天堂一级| 日本久久电影网| 欧美在线小视频| 亚洲成人av电影在线| 日韩一区和二区| 粉嫩aⅴ一区二区三区四区五区| 国产精品家庭影院| 欧美性猛片aaaaaaa做受| 精品国产伦一区二区三区观看体验| 蜜桃视频在线观看一区| 精品久久一区二区| yourporn久久国产精品| 五月天欧美精品| 色综合久久中文综合久久97| 亚洲成人第一页| 波多野结衣的一区二区三区| 亚洲一区二区av在线| 欧美成人官网二区| 成人av一区二区三区| 亚瑟在线精品视频| 久久一区二区三区四区| 亚洲图片一区二区| 久久久亚洲综合| 欧美伊人久久久久久久久影院| 久久国产精品色| 一区二区在线观看免费视频播放| 精品乱码亚洲一区二区不卡| 色婷婷精品大在线视频| 欧美一级黄色录像| gogo大胆日本视频一区| 国产综合久久久久久久久久久久 | 日韩美女久久久| 91精品国产色综合久久ai换脸 | 久久99精品久久久久久国产越南| 国产精品久久久久7777按摩| 91精品国产91久久久久久一区二区| 国产精品自拍毛片| 精品写真视频在线观看| 亚洲愉拍自拍另类高清精品| 极品少妇xxxx精品少妇偷拍| 亚洲影视在线观看| 国产精品久久久久久久久免费相片 | 中文字幕一区日韩精品欧美| 成人网页在线观看| 亚洲人成网站色在线观看| 欧美一区二区播放| eeuss鲁片一区二区三区在线观看| 日本韩国一区二区三区视频| 久久先锋影音av鲁色资源| av资源网一区| 国产在线精品一区二区夜色| 亚洲影院在线观看| 亚洲精品久久久久久国产精华液 | 中文字幕一区在线| 久久99精品久久只有精品| 亚洲成人av一区二区三区| 欧美精品第一页| 波多野结衣精品在线| 成人午夜看片网址| 国产精一品亚洲二区在线视频| 日韩欧美在线一区二区三区| 精品国产百合女同互慰| 在线免费观看日本欧美| 一本久道久久综合中文字幕| 97国产精品videossex| 成人免费av资源| 国产午夜一区二区三区| xnxx国产精品| 久久一区二区三区国产精品| 欧美精品一区二区三区四区| www久久精品| 久久久国产一区二区三区四区小说| 精品区一区二区| 国产一区二区精品久久| 91黄色免费观看| 欧美色区777第一页| 色婷婷综合久色| 色吊一区二区三区| 欧美色电影在线| 91精品国产乱码久久蜜臀| 日韩一区二区三区av| 亚洲专区一二三| 日韩精品电影在线观看| 免费看日韩a级影片| 国产麻豆91精品| 99久久综合国产精品| 欧美三级一区二区| 欧美一区二区三区系列电影| 欧美一区二区久久| 欧美在线影院一区二区| 欧美一区二区在线看| 精品国内二区三区| 国产精品萝li| 亚洲国产三级在线| 蜜桃在线一区二区三区| 国产91露脸合集magnet| 亚洲女厕所小便bbb| 91久久人澡人人添人人爽欧美| 欧美性色综合网| 久久久综合视频| 亚洲精品国产视频| 美女视频免费一区| 欧美色图在线观看| 久久久国产精华| 一区二区三区四区在线| 精品三级av在线| 亚洲欧美日韩一区二区| 蜜桃一区二区三区在线| 亚洲精品欧美综合四区| 久久99久久精品欧美| 成人午夜视频免费看| 欧美老人xxxx18| 国产91丝袜在线播放九色| 日本少妇一区二区| 91色九色蝌蚪| 精品粉嫩aⅴ一区二区三区四区| 欧美激情一区二区三区蜜桃视频| 成人av电影免费在线播放| 精品国免费一区二区三区| 亚洲综合av网| 成人免费视频视频| 在线播放日韩导航| 亚洲色图.com| 精油按摩中文字幕久久| 在线视频国内一区二区| 成人免费观看av| 久久久美女艺术照精彩视频福利播放| 一区二区三区精品在线| 国产欧美va欧美不卡在线| 免费观看30秒视频久久| 99这里只有久久精品视频| 欧美精品vⅰdeose4hd| 亚洲日本免费电影| 国产成人综合网站| 91精品婷婷国产综合久久竹菊| va亚洲va日韩不卡在线观看| 精品国产亚洲在线| 日本不卡在线视频| 欧美色网一区二区| 一区二区三区自拍| 一区二区三区影院| 一本大道久久a久久综合| 激情另类小说区图片区视频区| 欧美精品自拍偷拍动漫精品| 一区二区三区欧美日韩| 97久久精品人人爽人人爽蜜臀| 久久精品一区二区三区不卡牛牛| 麻豆精品新av中文字幕| 宅男在线国产精品| 亚洲va韩国va欧美va| 欧美日韩一本到| 亚洲一区二区三区四区在线| 一区二区三区波多野结衣在线观看 | 欧美绝品在线观看成人午夜影视| 亚洲欧美一区二区三区国产精品| 白白色亚洲国产精品| 久久中文字幕电影| 免费人成精品欧美精品| 蜜臀久久99精品久久久画质超高清| 欧美亚洲禁片免费| 亚洲一区二区不卡免费| 欧美人成免费网站| 亚洲高清视频中文字幕| 欧美日韩国产综合一区二区 | 色婷婷综合激情| 亚洲欧洲日韩一区二区三区| 97久久人人超碰| 一区二区三区四区亚洲| 在线免费观看视频一区| 亚洲一区二区三区四区中文字幕| 激情综合色播五月| 久久精品日韩一区二区三区| 高清视频一区二区| 99re热这里只有精品免费视频| 亚洲欧美日韩在线不卡| 欧美日韩小视频| 日本欧美肥老太交大片| 337p日本欧洲亚洲大胆精品| 国产91色综合久久免费分享| 亚洲乱码国产乱码精品精的特点| 一区二区在线观看视频| 91精品麻豆日日躁夜夜躁| 久久99久久久久久久久久久| 国产精品人人做人人爽人人添| 国产一区美女在线| 中文字幕一区二区三| 欧美视频一区二区三区在线观看| 图片区小说区国产精品视频|