coordinates.php
来自「视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.」· PHP 代码 · 共 128 行
PHP
128 行
<?php//// +----------------------------------------------------------------------+// | PHP Version 4 |// +----------------------------------------------------------------------+// | Copyright (c) 1997-2003 The PHP Group |// +----------------------------------------------------------------------+// | This source file is subject to version 2.0 of the PHP license, |// | that is bundled with this package in the file LICENSE, and is |// | available at through the world-wide-web at |// | http://www.php.net/license/2_02.txt. |// | If you did not receive a copy of the PHP license and are unable to |// | obtain it through the world-wide-web, please send a note to |// | license@php.net so we can mail you a copy immediately. |// +----------------------------------------------------------------------+// | Authors: Jesus M. Castagnetto <jmcastagnetto@php.net> |// +----------------------------------------------------------------------+//// $Id: Coordinates.php,v 1.3 2003/01/04 11:56:25 mj Exp $///** * Utility class for defining 3D coordinates and * its associated distance() method * * @author Jesus M. Castagnetto <jmcastagnetto@php.net> * @version 1.0 * @access public * @package Science_Chemistry */class Science_Chemistry_Coordinates { /** * Array of tridimensional coordinates: (x, y, z) * * @var array * @access private */ var $coords; /** * Constructor for the class, returns null if parameter is * not an array with 3 entries * * @param array $coords array of three floats (x, y, z) * @return object Science_Chemistry_Coordinates * @access public */ function Science_Chemistry_Coordinates($coords) { if (is_array($coords) && count($coords) == 3) $this->coords = $coords; else return null; } /** * Castesian distance calculation method * * @param object Science_Chemistry_Coordinates $coord * @return float distance * @access public */ function distance($coord) { if (Science_Chemistry_Coordinates::areCoordinates($coord)) { $xyz2 = $coord->getCoordinates(); for ($i=0; $i<count($xyz2); $i++) $sum2 += pow(($xyz2[$i] - $this->coords[$i]),2); return sqrt($sum2); } } /** * Checks if the object is an instance of Science_Chemistry_Coordinates * * @param object Science_Chemistry_Coordinates $obj * @return boolean * @access public */ function areCoordinates($obj) { return ( is_object($obj) && (strtolower(get_class($obj)) == strtolower("Science_Chemistry_Coordinates") || is_subclass_of($obj, strtolower("Science_Chemistry_Coordinates"))) ); } /** * Returns the array of coordinates * * @return array array (x, y, z) * @access public */ function getCoordinates() { if (is_array($this->coords) && !empty($this->coords)) return $this->coords; } /** * Returns a string representation of the coordinates: x y z * * @return string * @access public */ function toString() { for ($i=0; $i<count($this->coords); $i++) $tmp[$i] = sprintf("%10.4f",$this->coords[$i]); return implode(" ",$tmp); } /** * Returns a CML representation of the coordinates * * @return string * @access public */ function toCML() { $out = "<coordinate3 builtin=\"xyz3\">"; $tmp = array(); for ($i=0; $i < count($this->coords); $i++) $tmp[] = trim(sprintf("%10.4f", $this->coords[$i])); $out .= implode(" ",$tmp)."</coordinate3>\n"; return $out; }} // end of class Science_Chemistry_Coordinates// vim: expandtab: ts=4: sw=4?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?