|
項(xiàng)目里 要用到畫圖 并且最大化 和常態(tài)都要自適應(yīng) 并且線還能被擦掉 我就沒畫在圖片上(主要是這個(gè)是老大開發(fā)自定義控件 我不知道怎么畫在這個(gè)控件的圖片上。。。), 然后就出現(xiàn)了下圖的運(yùn)算 var x1 = ImgXInfo.lineStartPoint.X * ImgXInfo.MaxWidth / ImgXInfo.MinWidth; var y1 = ImgXInfo.lineStartPoint.Y * ImgXInfo.MaxHeight / ImgXInfo.MinHeight; var x2 = ImgXInfo.lineEndPoint.X * ImgXInfo.MaxWidth / ImgXInfo.MinWidth; var y2 = ImgXInfo.lineEndPoint.Y * ImgXInfo.MaxHeight / ImgXInfo.MinHeight; e.Graphics.DrawLine(p,x1,y1,x2,y2); int width = x2 - x1; int height = y2 - y1; int result = (width * width) + (height * height); res = Math.Sqrt(result);//根號(hào) ImgXInfo.Linelength =Convert.ToInt32(res); //e.Graphics.DrawLine(p, ImgXInfo.lineStartPoint.X / ImgXInfo.MinWidth* ImgXInfo.MaxWidth , ImgXInfo.lineStartPoint.Y / ImgXInfo.MinHeight* ImgXInfo.MaxHeight , ImgXInfo.lineEndPoint.X / ImgXInfo.MinWidth* ImgXInfo.MaxWidth , ImgXInfo.lineEndPoint.Y / ImgXInfo.MinHeight* ImgXInfo.MaxHeight );
注釋部分為我沒找到原因的時(shí)候?qū)懛?,?dāng)時(shí)我已經(jīng)查看了 ImgXInfo.lineStartPoint ImgXInfo.MaxHeight ImgXInfo.MaxHeight ImgXInfo.MinHeight
ImgXInfo.MinWidth 窗體重繪后就是出不來這條線 var x1 = ImgXInfo.lineStartPoint.X * ImgXInfo.MaxWidth / ImgXInfo.MinWidth; var y1 = ImgXInfo.lineStartPoint.Y * ImgXInfo.MaxHeight / ImgXInfo.MinHeight; var x2 = ImgXInfo.lineEndPoint.X * ImgXInfo.MaxWidth / ImgXInfo.MinWidth; var y2 = ImgXInfo.lineEndPoint.Y * ImgXInfo.MaxHeight / ImgXInfo.MinHeight; //var x1 = ImgXInfo.lineStartPoint.X / ImgXInfo.MinWidth * ImgXInfo.MaxWidth ; //var y1 = ImgXInfo.lineStartPoint.Y / ImgXInfo.MinHeight * ImgXInfo.MaxHeight ; //var x2 = ImgXInfo.lineEndPoint.X / ImgXInfo.MinWidth * ImgXInfo.MaxWidth ; //var y2 = ImgXInfo.lineEndPoint.Y / ImgXInfo.MinHeight * ImgXInfo.MaxHeight ; e.Graphics.DrawLine(p,x1,y1,x2,y2); int width = x2 - x1; int height = y2 - y1; int result = (width * width) + (height * height); res = Math.Sqrt(result);//根號(hào) ImgXInfo.Linelength =Convert.ToInt32(res); //e.Graphics.DrawLine(p, ImgXInfo.lineStartPoint.X / ImgXInfo.MinWidth* ImgXInfo.MaxWidth , ImgXInfo.lineStartPoint.Y / ImgXInfo.MinHeight* ImgXInfo.MaxHeight , ImgXInfo.lineEndPoint.X / ImgXInfo.MinWidth* ImgXInfo.MaxWidth , ImgXInfo.lineEndPoint.Y / ImgXInfo.MinHeight* ImgXInfo.MaxHeight ); 因?yàn)楸怀龜?shù) ImgXInfo.lineStartPoint.X 比除數(shù) ImgXInfo.MaxWidth小 所以除法運(yùn)算后 int類型結(jié)果為0,0乘以任何數(shù)都得零?。。。?!
然后 建個(gè)控制臺(tái)應(yīng)用程序 重新驗(yàn)證下 并記錄成一個(gè)Demo
總結(jié)
|
|
|