如果我有一个点数组(x,y,z)并给出一个单点(x,y,z),我用什么代码来确定该点是否位于数组定义的形状内?
我在这个上画了一个空白......
我正在使用C#
编辑
感谢回复人员,从评论中我发现了这个链接(http://alienryderflex.com/polygon/),它很好地解释了这个过程.
谢谢!
供参考:
bool pointInPolygon() {
int i, j=polySides-1 ;
boolean oddNodes=NO ;
for (i=0; i<polySides; i++) {
if (polyY[i]<y && polyY[j]>=y
|| polyY[j]<y && polyY[i]>=y) {
if (polyX[i]+(y-polyY[i])/(polyY[j]-polyY[i])*(polyX[j]-polyX[i])<x) {
oddNodes=!oddNodes; }}
j=i; }
return oddNodes; }
Run Code Online (Sandbox Code Playgroud)
它需要一些工作,但这就是它的核心.
再次感谢
我有一个LINQ查询,它从一个名为Permissions的表中返回所有记录,其中userId是当前用户.
我想要做的是对此结果集进行检查,看看是否存在值为5的PermissionId.
这是最简单的方法吗?
我有一个if声明
if (int1 < int2)
{}
else
{}
Run Code Online (Sandbox Code Playgroud)
如果int1和int2都为0,我希望运行else语句.
我有一个名单列表,一些代码检查,以查看该人是否存在,如果有的话,有些东西..
我的问题是我想处理输入错误名称的情况.即我有一个名单
Bob
Frank
Tom
Tim
John
Run Code Online (Sandbox Code Playgroud)
如果我输入Joohn,我想让它问我是不是意味着约翰.如果我输入Tm,我会被问到是否意味着蒂姆,如果我说不,那就问我是不是意思是汤姆......等等.
以前有人做过这样的事吗?
我有一个xml feed位于这里,我试图读入一个PHP脚本,然后循环<packages>,并总结<downloads>.我试图使用DOMDocument做到这一点,但迄今为止失败了.
我一直试图使用的基本方法如下
<?php
$dom = new DomDocument;
$dom->loadXML('http://www.phogue.net/feed');
$packages = $dom->getElementsByTagName('package');
foreach($packages as $item)
{
echo $item->getAttribute('uid').'<br>';
}
?>
Run Code Online (Sandbox Code Playgroud)
上面的代码只是打印出每个项目的名称,但它不起作用.我目前收到以下错误
警告:DOMDocument :: loadXML()[domdocument.loadxml]:在第3行的/home/a8744502/public_html/userbar.php中,在Entity中找不到"<",第1行:
工作代码:
<?php
$dom = new DomDocument;
$dom->load('http://www.phogue.net/feed/');
$package = $dom->getElementsByTagName('package');
$value=0;
foreach ($package as $plugin) {
$downloads = $plugin->getElementsByTagName("downloads");
$download = $downloads->item(0)->nodeValue;
$authors = $plugin->getElementsByTagName("author");
$author = $authors->item(0)->nodeValue;
if($author == "Zaeed")
{
$value += $download;
}
}
echo $value;
?>
Run Code Online (Sandbox Code Playgroud) 嘿,我试图让INSERT命令工作,但我不断收到以下错误.
错误:System.Data.Odbc.OdbcException:错误[42000] [MySQL] [ODBC 5.1驱动程序] [mysqld-5.0.90-community]您的SQL语法中有错误; 检查对应于你的MySQL服务器版本在System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle,RETCODE RETCODE在1号线附近使用"嵌入到tbl_SoldierStats(SoldierName)VALUES(" Zaeed")"正确的语法手册)在System.Data.Odbc.OdbcCommand.ExecuteReaderObject(的CommandBehavior行为,字符串方法,布尔needReader,对象[] methodArguments,SQL_API odbcApiMethod)在System.Data.Odbc.OdbcCommand.ExecuteReaderObject(的CommandBehavior行为,字符串方法,布尔needReader)在PRoConEvents.CAussieUnderdogsStatStreamer.StartStreaming()中的System.Data.Odbc.OdbcCommand.ExecuteNonQuery()
string insertSQL = "INSET INTO tbl_SoldierStats (SoldierName) VALUES (?)";
foreach (CPlayer Soldier in NewPlayers)
{
using (OdbcCommand OdbcCom = new OdbcCommand(insertSQL, OdbcCon))
{
OdbcCom.Parameters.AddWithValue("@pr", Soldier.Name);
OdbcCom.ExecuteNonQuery();
}
NewPlayers.Remove(Soldier);
Run Code Online (Sandbox Code Playgroud)
它到达ExecuteNonQuery然后抛出上面的错误..我看不出它有什么问题.
我有两个列表A和B,在我的程序开始时,它们都填充了数据库中的信息(列表A =列表B).我的程序运行,使用和修改列表A,列表B保持不变.过了一会儿,我用数据库中的新信息重新加载List B,然后对List A进行检查.
foreach (CPlayer player in ListA)
if (ListB.Contains(player))
-----
Run Code Online (Sandbox Code Playgroud)
首先,对象播放器是从类创建的,其主要标识符是player.Name.如果Name是相同的,但其他变量不同,.Contains是否仍会返回true?
Class CPlayer(
public CPlayer (string name)
_Name = name
Run Code Online (Sandbox Code Playgroud)
在----我需要使用ListB中的项目导致.Contains返回true,我该怎么做?
我有以下C#代码段,它接受一个列表,找到准备更新的对象,然后将它们推入临时列表,从主列表中删除,然后继续它的快乐方式.我的问题是循环通过我的主列表的foreach块不会退出.
TempLog.Clear(); //Ensure TempLog is empty
foreach (CLogger ready in PlayerLog)
{
if (ready.UpdateReady == true) // Record is ready to be updated in database
{
TempLog.Add(ready); // Add record to templog
PlayerLog.Remove(ready); // Remove from playerlog
}
}
<---- Never reaches this point
if (TempLog.Count > 0) // Just check that templog isn't empty
{
new Thread(Update).Start(); // Run update code
}
Run Code Online (Sandbox Code Playgroud)
我已经把大量的调试放入,我可以看到PlayerLog从1开始,TempLog为0,然后进入foreach循环,选择记录UpdateReady标志打开,TempLog转到1,PlayerLog转到0,然后它只是停止..没有错误,只是停止..
谢谢您的帮助 :)
我有一些T-SQL代码进行检查以确定字段是否为NULL.通常我只是在字段上进行IS NULL检查,但是在这个代码中我已经给出了,使用的方法是
WHERE ISNULL(MyField, '') <> ''
这是一种更被接受的方法吗?它比简单地说更好还是更坏WHERE MyField IS NOT NULL
干杯,为您提供帮助