python判斷點在矩形內_判斷平面內矩形和圓是否有交點的python實現

#! /usr/bin/env python

# -*- coding: utf-8 -*-

'''

@filename : 平面坐標內矩形與圓是否相交

@usage :

@authors : U{peterguo}

@copyright: tencent

@date : 2012.08.21

@version : 1.0.0.0

Modified History:

2012.08.21 創建

'''

import os

import sys

import re

import urllib2

import time

import datetime

import math

def usage():

'''

用法說明

'''

sys.exit(1)

def bPointInCircle(fPointX, fPointY, fCircleX, fCircleY, fRadius):

oPoint = complex(fPointX, fPointY)

oCircle = complex(fCircleX, fCircleY)

if abs(oPoint - oCircle) < fRadius:

return True

else:

return False

def bPointInRectangle(fPointX, fPointY, fRectTopLeftX, fRectTopLeftY, fRectBottomRightX, fRectBottomRightY):

if not (fRectTopLeftX <= fPointX <= fRectBottomRightX or fRectTopLeftX >= fPointX >= fRectBottomRightX):

return False

if not (fRectTopLeftY <= fPointY <= fRectBottomRightY or fRectTopLeftY >= fPointY >= fRectBottomRightY):

return False

return True

def bCircleIntersectRectangle(fRectTopLeftX=0, fRectTopLeftY=10, fRectBottomRightX=20, fRectBottomRightY=0, #矩形左上點和右下點坐標

fCircleX=0, fCircleY=0, #圓心

fRadius=10): #圓半徑

o1 = complex(fRectTopLeftX, fRectTopLeftY)

o4 = complex(fRectBottomRightX, fRectBottomRightY)

o2 = complex(fRectBottomRightX, fRectTopLeftY)

o3 = complex(fRectTopLeftX, fRectBottomRightY)

bO1 = bPointInCircle(fCircleX, fCircleY, o1.real, o1.imag, fRadius)

bO2 = bPointInCircle(fCircleX, fCircleY, o2.real, o2.imag, fRadius)

bO3 = bPointInCircle(fCircleX, fCircleY, o3.real, o3.imag, fRadius)

bO4 = bPointInCircle(fCircleX, fCircleY, o4.real, o4.imag, fRadius)

bABCD = bPointInRectangle(fCircleX, fCircleY, o1.real, o1.imag + fRadius, o2.real, o2.imag - fRadius)

bEFGH = bPointInRectangle(fCircleX, fCircleY, o3.real, o3.imag + fRadius, o4.real, o4.imag - fRadius)

bIJKL = bPointInRectangle(fCircleX, fCircleY, o1.real - fRadius, o1.imag, o3.real + fRadius, o3.imag)

bMNOP = bPointInRectangle(fCircleX, fCircleY, o2.real - fRadius, o2.imag, o4.real + fRadius, o4.imag)

#print bO1 , bO2 , bO3 , bO4 , bABCD , bEFGH , bIJKL , bMNOP

return bO1 or bO2 or bO3 or bO4 or bABCD or bEFGH or bIJKL or bMNOP

if __name__ == "__main__":

print "False", bPointInCircle(0,0, 100, 100, 100)

print "False", bPointInCircle(0,0, 100, 100, 10)

print "True", bPointInCircle(0,0, 0, 0, 10)

print "True", bPointInRectangle(0, 0, -1, -2, 3, 4)

print "False", bPointInRectangle(0, 0, 1, 2, 3, 4)

print "True", bCircleIntersectRectangle()

print "False", bCircleIntersectRectangle(2.0, 4.0, 4.5, 1.0, 1.0, 2.0, 1.0)

print "True", bCircleIntersectRectangle(2.0, 4.0, 4.5, 1.0, 1.0, 2.0, 2.0)

print "False", bCircleIntersectRectangle(2.0, 4.0, 4.5, 1.0, 100.0, 2.0, 2.0)

print "True", bCircleIntersectRectangle(2.0, 4.0, 4.5, 1.0, 3.0, 3.0, 1.0)

print "False", bCircleIntersectRectangle(2.0, 4.0, 4.5, 1.0, 3.0, 3.0, 0.5)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538959.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538959.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538959.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python讀取mysql數據庫_Python操作MySQL數據庫9個實用實例

在Windows平臺上安裝mysql模塊用于Python開發 用python連接mysql的時候&#xff0c;需要用的安裝版本&#xff0c;源碼版本容易有錯誤提示。下邊是打包了32與64版本。 MySQL-python-1.2.3.win32-py2.7.exe MySQL-python-1.2.3.win-amd64-py2.7.exe 實例 1、取得 MYSQL 的版本 #…

win主機上搭建php網站運行環境,Windows server 2008搭建php運行環境圖文詳解(php5.3)

這篇文章主要為大家分享下Windows server 2008搭建php運行環境的步驟&#xff0c;需要的朋友可以參考下下載php組件包首先到http://windows.php.net/download/下載你需要的php版本&#xff0c;這里我下載的是php5.3。下面解壓php組件 包到磁盤上。安裝Microsoft Visual C 2008 …

python 登陸微博 被刪除 token_爬取微博信息,使用了cookie仍然無法登錄微博

按照網上的模板自己寫了類似的代碼爬取微博&#xff0c;可是response回來的html是登錄界面的html&#xff0c;應該是沒有成功登陸微博&#xff0c;但是和網上的代碼是基本一樣的from bs4 import BeautifulSoupimport pandas as pdimport requestsurl "https://weibo.cn/2…

plsql developer連接oracle--本地不安裝oracle

工具 數據庫開發程序 PLSQL Developer oracle 客戶端 instantclient&#xff0c;點擊下載 &#xff08;下載與oracle相同版本或最新版本&#xff0c;如果 PLSQL Developer是32位&#xff0c;則要下載32位的&#xff09;安裝 1、解壓oracle客戶端 到盤某個目錄。我的目錄是C:\or…

ubuntu networking 與 network-manager

剛遇到的坑&#xff0c;因為操作不當導致網絡中斷&#xff0c;于是手動配置了/etc/network/interfaces , 修復了系統之后發現ubuntu-desktop中的有線鏈接不見了&#xff0c;百度了一下說是networking服務和network-manger服務會起沖突。 【Server版本】 在UbuntuServer版本中&…

mysql 升序_mysql 的 查找 與 排序

mysql 的 查找 &#xff1a;SELECT name,age FROM mytable; # 在mytable 中所有的name,age 數據SELECT name,age FROM mytable WHERE age>25; #在mytable 中所有的name,age 數據&#xff0c;其中age必須小于25SELECT name,age FROM mytable WHERE age<25 OR age>30; #…

Hadoop3.0的新特性

轉載&#xff1a;http://blog.csdn.net/sinat_31726559/article/details/52103229 點擊閱讀原文 -------------------------------------- 1. Hadoop3.0簡介 Hadoop 2.0是基于JDK 1.7開發的&#xff0c;而JDK 1.7在2015年4月已停止更新&#xff0c;這直接迫使Hadoop社區基于…

python torch exp_學習Pytorch過程遇到的坑(持續更新中)

1. 關于單機多卡的處理&#xff1a;在pytorch官網上有一個簡單的示例&#xff1a;函數使用為&#xff1a;torch.nn.DataParallel(model, deviceids, outputdevice, dim)關鍵的在于model、device_ids這兩個參數。DATA PARALLELISM?pytorch.org但是官網的例子中沒有講到一個核心…

php 讀文件返回字符串,PHP:file_get_contents('php:// input')返回JSON消息的字符串...

我正在嘗試在我的PHP應用程序中讀取JSON消息&#xff0c;這是我的php代碼&#xff1a;$json file_get_contents(php://input);$obj json_decode($json, TRUE);echo $obj->{S3URL};當我這樣做時&#xff0c;出現以下錯誤&#xff1a;Trying to get property of non-object …

Android中ListView數據使用sAdapter.notifyDataSetChanged();方法不刷新的問題

原文鏈接&#xff1a;http://blog.csdn.net/caihongdao123/article/details/51513410 點擊閱讀原文 ------------------------- 1.涉及到數據庫 當要動態顯示更數據庫改動&#xff0c;相信大家應該都用過notifyDataSetChanged();. 例如&#xff1a; ...... …

keepalived配置高可用集群

準備工作 分別在主從上安裝keepalived和nginxyum install -y keepalivedyum install -y nginx關閉主從上的防火墻和SELinuxsystemctl stop firewalldsetenforce 0 配置主機 查看主機ip [rootlynn-04 ~]# ifconfig ens33: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu…

如何快速掌握python包_如何快速掌握一個python模塊?

初學者就別想快了。 我自己是這樣的。先上網看看一些基礎的教程&#xff0c;非常快的過一下&#xff0c;十幾分鐘&#xff0c;主要是了解這個module能干什么&#xff0c;特別是一些基本的功能&#xff0c;頭腦中建立起初步映射。 然后就是用了&#xff0c;不用看了也白搭。我假…

python設計一個函數定義計算并返回n價調和函數_python函數的調和平均值?

我有兩個函數&#xff0c;給出精度和召回分數&#xff0c;我需要做一個調和平均函數&#xff0c;定義在同一個庫中&#xff0c;使用這兩個分數。函數如下所示&#xff1a;功能如下&#xff1a;def precision(ref, hyp):"""Calculates precision.Args:- ref: a l…

jsp超鏈接到java文件,jsp頁面超鏈接傳中文終極解決辦法

在做web前端頁面的時候&#xff0c;經常碰到傳中文問題。網上有許多方案&#xff0c;但仍不能根治&#xff0c;最終要用js或者java的encode相關方法。常規方案有三部&#xff1a;1.改tomcat的server.xml中URIEncodeing為utf-82.頁面中編碼設置為utf-83.整個項目編碼使用utf-8我…

自定義ListView中的分割線

原文&#xff1a;http://blog.csdn.net/zuolongsnail/article/details/7187302點擊閱讀 --------------------------------------- ListView中每個Item項之間都有分割線&#xff0c;設置Android:footerDividersEnabled表示是否顯示分割線&#xff0c;此屬性默認為true。 1.不顯…

隱藏域input里面放當前時間_【小A問答】Win10的隱藏小秘密,被我發現了!

無驚無險又到小A問答環節辣~~今天的小A要來給大家分享一些小秘密&#xff01;當然&#xff0c;這可不是小A自己的小秘密&#xff0c;是關于你電腦的小秘密哦&#xff01;知道嗎&#xff1f;Windows10每一次升級更新&#xff0c;都會伴隨著新功能的增加。這些隱藏的功能你都發現…

網絡相關的面試題

1&#xff09;簡述tcp/ip的三次交互過程&#xff08;個人理解&#xff1a;syn是握手信號&#xff0c;ack是確認信號&#xff0c;ack就相當于前面的syn值1&#xff0c;簡單一點理解就是客戶端發送握手請求&#xff0c;服務器收到握手請求后&#xff0c;回復一個包確認它接收到了…

h5文字垂直居中_CSS中垂直居中和水平垂直居中的方法

flex垂直居中&#xff1a;第一種&#xff1a;使用flex布局&#xff0c;讓居中元素的父元素為flex屬性,讓它在交叉軸上center就可以達到居中效果了&#xff1a;html代碼: <div class"father"><p>我要垂直居中</p> </div>css代碼: .father {…

ListMap排序

//compareto就是比較兩個數據的大小關系 大于0表示前一個數據比后一個數據大&#xff0c; 0表示相等&#xff0c;小于0表示第一個數據小于第二個數據 public static List<Map<String, String>> sortWifi(List<Map<String, String>> wifiList){if(wif…

thinkphp回調的php調用db類,請問thinkphp中model類自動完成功能 回調函數能不能獲取其他字段的值?...

http://www.thinkphp.cn/api/source-class-Model.html#975protected function _validationFieldItem($data,$val) {switch(strtolower(trim($val[4]))) {case function:// 使用函數進行驗證case callback:// 調用方法進行驗證$args isset($val[6])?(array)$val[6]:array();if…