基本原理:舍取法
代碼:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using ESRI.ArcGIS.Geometry; using ESRI.ArcGIS.Geodatabase; using ESRI.ArcGIS.Carto; namespace 舍取法在多邊形內隨機產生若干點 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { this.axMapControl1.LoadMxFile(@"F:/連續型隨機變量的舍取法抽樣/舍取法.mxd"); } private void Sample(IPolygon pPolygon, int num, IFeatureClass pFeatureClass) { IRelationalOperator pOprator = pPolygon as IRelationalOperator; int i = 0; IEnvelope pEnv = pPolygon.Envelope;//pPolygon的最小包絡多邊形 Random r = new Random(); double xMin = pEnv.XMin; double xMax = pEnv.XMax; double yMin = pEnv.YMin; double yMax = pEnv.YMax; IFeatureBuffer pFeatureBuffer = pFeatureClass.CreateFeatureBuffer(); IFeatureCursor pFeatureCursor = pFeatureClass.Insert(true); object featureOID; while (i < num) { IPoint pPoint = new PointClass(); pPoint.PutCoords(xMin + r.NextDouble() * (xMax - xMin), yMin + r.NextDouble() * (yMax - yMin)); if (pOprator.Contains(pPoint))//若在pPolygon內,則爲有效隨機點 { i++; pFeatureBuffer.Shape = pPoint as IPoint; pFeatureBuffer.set_Value(2, 0); featureOID = pFeatureCursor.InsertFeature(pFeatureBuffer); } else { pFeatureBuffer.Shape = pPoint as IPoint; pFeatureBuffer.set_Value(2, 1); featureOID = pFeatureCursor.InsertFeature(pFeatureBuffer); } } pFeatureCursor.Flush(); System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor);//釋放Cursor this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } private void button1_Click(object sender, EventArgs e) { IFeatureLayer pFeatureLayer1 = this.axMapControl1.get_Layer(1) as IFeatureLayer; IFeatureLayer pFeatureLayer0 = this.axMapControl1.get_Layer(0) as IFeatureLayer; IFeatureClass pFeatureClass1 = pFeatureLayer1.FeatureClass; IFeatureClass pFeatureClass0 = pFeatureLayer0.FeatureClass; IFeature pFeature = pFeatureClass1.GetFeature(0); IRelationalOperator pOprator = pFeature.Shape as IRelationalOperator; int num = int.Parse(this.textBox1.Text); this.Sample((IPolygon)pFeature.Shape, num, pFeatureClass0); } private void button2_Click(object sender, EventArgs e) { IFeatureLayer pFeatureLayer0 = this.axMapControl1.get_Layer(0) as IFeatureLayer; IFeatureClass pFeatureClass = pFeatureLayer0.FeatureClass; //while (pFeatureClass.FeatureCount(null) > 0) //{ // pFeatureClass.GetFeature(0).Delete(); //} //this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); IFeatureCursor pFC = pFeatureClass.Search(null, false); IFeature pFeature = pFC.NextFeature(); while (pFeature != null) { pFeature.Delete(); pFeature = pFC.NextFeature(); } this.axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } } }
結果:
這個其實是一個特別高頻的面試題,松哥也一直很想和大家仔細來聊一聊這個話題,網上關於這塊的文章很多,但是我一直覺得要把這個問題講清楚還有點難度,今天我來試一試,看能不能和小夥伴們把這個問題梳理清楚,當然,如果小夥伴們覺得看文章不過癮,松哥也有
分享8個開箱即用的API,方便日常處理集合。 1. 快速過濾空值:Stream.ofNullable 該方法是在 Java 9 中引入的,有助於過濾集合中的所有空值,從而可能使我們避免空指針異常。 在下面的示例中,有一個包含 null 的L
一、背景 在日常部門OpsReview過程中,部門內多次遇到應用容器所在的宿主機磁盤繁忙導致的接口響應緩慢,TP99增高等影響服務性能的問題,其中比較有效的解決方案是開啓日誌的異步打印,可以有效避免同步日誌打印在磁盤IO高起的情況下拖慢業
var obj = {} var texts = 'hello' let ipt = document.querySelector('#input') let txt = document.querySelector(
在Vue中,style scope是一個特性,它可以防止組件的樣式影響到其他組件,從而減少樣式衝突。這個特性通過在生成的CSS選擇器中自動添加一個屬性(通常是data-v-hash)來實現。 如果你遇到了style scope導致樣式無法被
DevExtreme擁有高性能的HTML5 / JavaScript小部件集合,使您可以利用現代Web開發堆棧(包括React,Angular,ASP.NET Core,jQuery,Knockout等)構建交互式的Web應用程序。從Ang
Stable diffusion中的models Stable diffusion model也可以叫做checkpoint model,是預先訓練好的Stable diffusion權重,用於生成特定風格的圖像。模型生成的圖像類型取決於訓
本文分享自華爲雲社區《10分鐘搞懂各種內存溢出案例!!(含完整源碼,建議收藏)》,作者:冰 河。 作爲程序員,多多少少都會遇到一些內存溢出的場景,如果你還沒遇到,說明你工作的年限可能比較短,或者你根本就是個假程序員!哈哈,開個玩笑。今天,我
文|苟振東(花名:盛知) Koupleless 項目 committer 螞蟻集團技術專家 本文 5789 字 閱讀 12 分鐘 本篇文章屬於 Koupleless 進階系列文章第二篇,默認讀者對 Koupleless 的基礎概念、能力都
1. 引言 在現代軟件開發過程中,性能優化和故障排查是保證應用穩定運行的關鍵任務之一。Java作爲一種廣泛使用的編程語言,其生態中湧現出了許多優秀的監控和診斷工具,諸如:SkyWalking、Zipkin等,它們幫助開發者和運維人員
· 前言 · 在國內,公網服務器與本地服務器的通信一直是個難題,本地服務器因爲IP是動態變化的,公網服務器沒辦法將請求發送給本地服務器。爲了解決這個問題,所以採用WebSocket協議替換Http協議。爲了實現請求等待,使用Gu
在這裏分享一下通過拖取 DataCube 代碼審計後發現的一些漏洞,包括前臺的文件上傳,信息泄露出賬號密碼,後臺的文件上傳。當然還有部分 SQL 注入漏洞,因爲 DataCube 採用的是 SQLite 的數據庫,所以SQL 注入相對來說顯
轉載自劉茫茫看山 問題背景 某天我們的租戶反饋數據庫連接缺少必要的驅動,我們通過日誌查看確實是缺少部分數據庫的驅動,因爲DolphinScheduler默認只帶了Oracle和MySQL的驅動,並且需要將pom文件中的test模式去掉纔可以